linux – Bash While循环不结束

我正在玩bash编程.我写了一个简单的bash程序,它接受读者的输入.如果读者输入字符串“bye”,则while循环结束.所以程序非常简单,我写过这样的东西

#!/bin/sh
inputString="hello"
while [ inputString != "bye" ]
do
    echo "Please write something (bye to quit)"
    read inputString
    echo "You typed : ${inputString}"
done

它一直工作,直到用户一次输入两个单词.

如果用户输入类似的内容

bye bye

程序崩溃会产生以下错误

./WhileLoop.sh: 5: [: bye: unexpected operator

如何修改代码以便程序可以进行多次输入?

解决方法:

在while条件下将inputString放在双引号旁边.如果没有双引号,如果您的变量为空,则会引发错误.

更新:

脚本上有拼写错误,在inputString之前添加$,进行变量替换:while [“$inputString”!=“bye”]

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...