我的代码:
#!/bin/sh
#filename:choose.sh
read choose
[ "$choose" == "y" -o "$choose" == "Y" ] && echo "Yes" && exit 0
[ "$choose" == "n" -o "$choose" == "N" ] && echo "No" && exit 0
echo "Wrong Input" && exit 0
但是当我执行
sh ./choose.sh
终端提示我说
[: 4: n: :Unexpected operator
[: 5: n: :Unexpected operator
我的bash脚本中有错误吗? 谢谢!
sh
别名为bash
。一些发行版不再提供真正的sh
。尽管有人会争论(我也倾向于同意),如果您编写一个要可移植的脚本,请使用sh
而不是bash
。 - Wolphsource foobar.sh
而不是./foobar.sh
。 - jsta${choose}BLAH
的方法--最好只是引用,使用"$choose"
;自1970年以来就不再需要常量前缀/后缀(只要避免使用当前POSIX“test”标准中标记为过时的功能,如-a
或-o
)。 - Charles Duffy