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"
。我们-ne 5
测试 5 的算术不等式。
如果你想测试具体来说五位数字:
case $clientID in
[0-9][0-9][0-9][0-9][0-9])
# ok
;;
*)
# denied
esac
与bash
shell及其正则表达式匹配:
if [[ "$clientID" =~ ^[0-9]{5}$ ]]; then
# ok
else
# denied
fi
使用该expr
实用程序(在任何sh
类似的 shell 中):
if expr "$clientID" : '^[0-9]\{5\}$' >/dev/null; then
# ok
else
# denied
fi