分页: 1 / 1

菜鸟求助,小程序运行错误

发表于 : 2011-07-01 17:33
dtczhl

代码: 全选

  1 #!/bin/bash
  2 
  3 read -p "Please input (Y/N): " yn
  4 [ "$yn" == "Y" -o "$yn" == "y" ] && echo "OK, continue" && exit 0
  5 [ "$yn" == "N" -o "$yn" == "n" ] && echo "OK, interrupt" && exit 0
  6 echo "I don't know what your choice is " && exit 0
终端显示结果如下
dtczhl@dtczhl-laptop:/tmp$ sh sh06.sh
Please input (Y/N): Y
[: 4: Y: unexpected operator
[: 5: Y: unexpected operator
I don't know what your choice is

哪里错了阿

Re: 菜鸟求助,小程序运行错误

发表于 : 2011-07-01 17:42
c43035

代码: 全选

c43035@ww-pc:~/test$ ./01
Please input (Y/N): y
OK, continue
c43035@ww-pc:~/test$ ./01
Please input (Y/N): n
OK, interrupt

完全正确啊

Re: 菜鸟求助,小程序运行错误

发表于 : 2011-07-01 17:44
c43035

代码: 全选

 #!/bin/bash

read -p "Please input (Y/N): " yn
[ "$yn" == "Y" -o "$yn" == "y" ] && echo "OK, continue" && exit 0
[ "$yn" == "N" -o "$yn" == "n" ] && echo "OK, interrupt" && exit 0
echo "I don't know what your choice is " && exit 0

Re: 菜鸟求助,小程序运行错误

发表于 : 2011-07-01 17:44
c43035
你的行号是怎么回事,,,

Re: 菜鸟求助,小程序运行错误

发表于 : 2011-07-01 18:17
dtczhl
c43035 写了:你的行号是怎么回事,,,
行号是vim编辑时自动添加的

如果用 sh sh06.sh运行所会报错

但用 chmod a+x sh06.sh
然后 ./sh06.sh
却能正常运行,是怎么回事阿??

Re: 菜鸟求助,小程序运行错误

发表于 : 2011-07-01 18:35
c43035

代码: 全选

c43035@ww-pc:~/test$ bash 01
Please input (Y/N): y
OK, continue
c43035@ww-pc:~/test$ bash 01
Please input (Y/N): n
OK, interrupt
这样也正常,,问题就出在"sh"

sh 和 bash 有何不同呀

Re: 菜鸟求助,小程序运行错误

发表于 : 2011-07-01 18:45
c43035
已经搞明白了,,:-),,

sh 在ubuntu里面调用的是dash而不是bash,,所有就 会有报错咯

:em05

Re: 菜鸟求助,小程序运行错误

发表于 : 2011-07-01 20:29
dtczhl
c43035 写了:已经搞明白了,,:-),,

sh 在ubuntu里面调用的是dash而不是bash,,所有就 会有报错咯

:em05

十分感谢哦 :em11

Re: 菜鸟求助,小程序运行错误

发表于 : 2011-07-02 9:06
tusooa

代码: 全选

[ "$yn" == "Y" -o "$yn" == "y" ]
这用case多好。

代码: 全选

case "$yn" in
    [yY])echo continue;;
    [nN])echo interrupt;;
    *)echo unknown;
esac
别老exit了。