Shell小程序,求排错

sh/bash/dash/ksh/zsh等Shell脚本
回复
潇潇暮雨sunny
帖子: 19
注册时间: 2011-06-24 1:25

Shell小程序,求排错

#1

帖子 潇潇暮雨sunny » 2011-12-11 13:13

程序目的是测试函数返回值,源码如下:
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'
头像
sunfish
帖子: 989
注册时间: 2008-05-03 1:53

Re: Shell小程序,求排错

#2

帖子 sunfish » 2011-12-11 13:21

字串比较用“==”
case语句没有do、done的,结尾用esac
你还是在网上找一本《高级Bash Shell脚本编程》看看吧,中文的,电子版很多的
docker && kubernetes
潇潇暮雨sunny
帖子: 19
注册时间: 2011-06-24 1:25

Re: Shell小程序,求排错

#3

帖子 潇潇暮雨sunny » 2011-12-11 13:57

看来这本2001年的书果真不行啊,这么多错误。感谢楼上的排错的建议
wsfcsk
帖子: 3
注册时间: 2011-09-05 10:43

Re: Shell小程序,求排错

#4

帖子 wsfcsk » 2011-12-12 17:36

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
~
头像
naturalaw
帖子: 1360
注册时间: 2011-09-06 22:04

Re: Shell小程序,求排错

#5

帖子 naturalaw » 2011-12-12 19:54

早跟你說了不說。哎。
  • The eternal law
回复