我的代码:
#!/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
Run Code Online (Sandbox Code Playgroud)
但是当我执行时
sh ./choose.sh
Run Code Online (Sandbox Code Playgroud)
终端提示我
[: 4: n: :Unexpected operator
[: 5: n: :Unexpected operator
Run Code Online (Sandbox Code Playgroud)
我的bash脚本有什么错误吗?谢谢!
在bash脚本中
if [ 1 ]
then
echo "Yes"
else
echo "No"
fi
Run Code Online (Sandbox Code Playgroud)
输出: Yes
它表示'1'被视为真值.
但在代码中:
word = Linux
letter = nuxi
if echo "$word" | grep -q "$letter"
then
echo "Yes"
else
echo "No"
fi
Run Code Online (Sandbox Code Playgroud)
输出:没有
但是No
会返回1,为什么结果是否
关键字如何echo "$word" | grep -q "$letter"
测试命令返回的值后No
?