一开始我考虑用 grep '[0-9]\{1,3\}',判断结果为空来检查是否符合要求。
后来发现只要有一位数字就能通过检查,数字与字母、特殊字符等混合的情况没法筛除,如0a,#22, 4b;等。
求教高人,要求:只能是1~3位的数字,且012,002等不被接受(即不能以0开头)。先谢过!
判断的是一个变量,不是文件中的字符流。$符号表示文件结尾,应该不能用吧。
------------------------------------------
jlake老兄,多谢,可以了。看来$符号还是需要的。
var=123
test=`echo $var | grep '^[0-9]\{1,3\}$' | grep '^[1-9]'`
if [ "$test" -eq "" ]; then
echo "Invalid data!"
fi