红联Linux门户
Linux帮助
当前位置: 红联Linux门户 > Ubuntu

shell中中括号怎么用啊

发布时间:2010-06-20 17:41:19来源:红联作者:光之源
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
read -p "input Y/N :" yn
[ "$yn" == "Y" -o "$yn" == "y" ] && echo "OK, yes" && exit 0
[ "$yn" == "N" -o "$yn" == "n" ] && echo "Oh, no" && exit 0
echo "i don't know what you input" && exit 0
提示中括号的地方出错,改了好长时间不知道怎么改,还望指点一下中括号测试的用法,感激不尽。
还有就是可不可以把[ "$yn" == "Y" -o "$yn" == "y" ] && echo "OK" && exit 0 改成下面的形式
[ "$yn" == "Y" ] || [ "$yn" == "y" ] && echo "OK" && exit 0
文章评论

共有 3 条评论

  1. 于 2013-05-31 20:51:02发表:

    非常感谢!

  2. 光之源 于 2010-06-26 21:09:47发表:

    太感谢了,就这点难为了我好几天

  3. dchwlinux 于 2010-06-23 17:56:38发表:

    [i=s] 本帖最后由 dchwlinux 于 2010-6-24 05:14 编辑 [/i]

    你是不是看的鸟哥的书里的例子完全照做的啊,在Ubuntu下那个sh命令用的是dsh,不是bash,你不要用sh命令,应该用bash xxx.sh命令,或chmod +x权限,./xxx.sh试一下。还有,后面改的一看就是错的嘛,||可绝不是“或”的意思啊,它表示只有前一步命令是错的才会继续下一步,拿你改的来说,我要是输个Y,第一个判断的结果为真,于是后面的命令就不会执行,也就不会输出OK,而是跑到下步判断N了,在第二处判断n那里通不过,最后就执行“don't know”了。