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

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
dtczhl
帖子: 70
注册时间: 2011-04-17 11:44

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

#1

帖子 dtczhl » 2011-07-01 17:33

代码: 全选

  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

哪里错了阿
头像
c43035
帖子: 724
注册时间: 2008-10-22 14:29
联系:

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

#2

帖子 c43035 » 2011-07-01 17:42

代码: 全选

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

完全正确啊

代码: 全选

www.bashell.org
亲,走过路过,不要错过
头像
c43035
帖子: 724
注册时间: 2008-10-22 14:29
联系:

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

#3

帖子 c43035 » 2011-07-01 17:44

代码: 全选

 #!/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

代码: 全选

www.bashell.org
亲,走过路过,不要错过
头像
c43035
帖子: 724
注册时间: 2008-10-22 14:29
联系:

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

#4

帖子 c43035 » 2011-07-01 17:44

你的行号是怎么回事,,,

代码: 全选

www.bashell.org
亲,走过路过,不要错过
头像
dtczhl
帖子: 70
注册时间: 2011-04-17 11:44

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

#5

帖子 dtczhl » 2011-07-01 18:17

c43035 写了:你的行号是怎么回事,,,
行号是vim编辑时自动添加的

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

但用 chmod a+x sh06.sh
然后 ./sh06.sh
却能正常运行,是怎么回事阿??
头像
c43035
帖子: 724
注册时间: 2008-10-22 14:29
联系:

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

#6

帖子 c43035 » 2011-07-01 18:35

代码: 全选

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 有何不同呀

代码: 全选

www.bashell.org
亲,走过路过,不要错过
头像
c43035
帖子: 724
注册时间: 2008-10-22 14:29
联系:

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

#7

帖子 c43035 » 2011-07-01 18:45

已经搞明白了,,:-),,

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

:em05

代码: 全选

www.bashell.org
亲,走过路过,不要错过
头像
dtczhl
帖子: 70
注册时间: 2011-04-17 11:44

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

#8

帖子 dtczhl » 2011-07-01 20:29

c43035 写了:已经搞明白了,,:-),,

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

:em05

十分感谢哦 :em11
tusooa
帖子: 6548
注册时间: 2008-10-31 22:12
系统: 践兔
联系:

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

#9

帖子 tusooa » 2011-07-02 9:06

代码: 全选

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

代码: 全选

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

代码: 全选

] ls -ld //
回复