if [[ wc[$clientID] != 5 ]];
then
print "Client id entered is incorrect"
else
print "\n"
print "1. QA "
print "2. QC "
fi
間違い
./ERMS.sh[16]: syntax error at line 64 : `newline or ;' unexpected
答え1
~によるとコメント、wc[$clientID]
計算に使用したい文字数$clientID
。それはこれがすることではありません。
代わりに:
if [ "${#clientID}" -ne 5 ]; then
# denied
else
# ok
fi
拡張は${#variable}
長さの整数を返します"$variable"
。 5つ-ne 5
の算術不等式をテストします。
テストしたい場合具体的に5桁:
case $clientID in
[0-9][0-9][0-9][0-9][0-9])
# ok
;;
*)
# denied
esac
シェルとbash
その正規表現と一致します。
if [[ "$clientID" =~ ^[0-9]{5}$ ]]; then
# ok
else
# denied
fi
次のexpr
ユーティリティを使用してください(類似したシェルからsh
):
if expr "$clientID" : '^[0-9]\{5\}$' >/dev/null; then
# ok
else
# denied
fi