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
해당 정규식과 일치합니다.
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