程序目的是测试函数返回值,源码如下:
function verify
{
if [ $# -ne 2 ]
then return 1
else if [ $1 -eq Bob ] && [ $2 -eq 555 ]
then return 0
else return 2;echo "Rejected"
fi
fi
}
verify Bob 555
case $? in
do
0) echo "Verified"
;;
1) echo "Wrong number of arguments"
;;
2) echo "Rejected"
;;
done
./return: 第 5 行: [: Bob: 期待整数表达式
./return: 行 13: 未预期的符号 `newline' 附近有语法错误
./return: 行 13: `do'
Shell小程序,求排错
-
- 帖子: 19
- 注册时间: 2011-06-24 1:25
- sunfish
- 帖子: 989
- 注册时间: 2008-05-03 1:53
Re: Shell小程序,求排错
字串比较用“==”
case语句没有do、done的,结尾用esac
你还是在网上找一本《高级Bash Shell脚本编程》看看吧,中文的,电子版很多的
case语句没有do、done的,结尾用esac
你还是在网上找一本《高级Bash Shell脚本编程》看看吧,中文的,电子版很多的
docker && kubernetes
-
- 帖子: 19
- 注册时间: 2011-06-24 1:25
Re: Shell小程序,求排错
看来这本2001年的书果真不行啊,这么多错误。感谢楼上的排错的建议
-
- 帖子: 3
- 注册时间: 2011-09-05 10:43
Re: Shell小程序,求排错
function verify
{
if [ $# -ne 2 ];then
return 1
else if [ "x$1" == "xBob" ] && [ "x$2" == "x555" ]
then return 0
else return 2;echo "Rejected"
fi
fi
}
verify Bob 555
case $? in
0) echo "Verified"
;;
1) echo "Wrong number of arguments"
;;
2) echo "Rejected"
;;
esac
~
{
if [ $# -ne 2 ];then
return 1
else if [ "x$1" == "xBob" ] && [ "x$2" == "x555" ]
then return 0
else return 2;echo "Rejected"
fi
fi
}
verify Bob 555
case $? in
0) echo "Verified"
;;
1) echo "Wrong number of arguments"
;;
2) echo "Rejected"
;;
esac
~
- naturalaw
- 帖子: 1360
- 注册时间: 2011-09-06 22:04