linux - Bash While 循环未结束

标签 linux bash while-loop

我在玩 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"]

关于linux - Bash While 循环未结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25708013/

相关文章:

linux - 将文本提取到新文件中

regex - sed:从文件中删除数字

bash - 如何获得递归的完整路径列表,每个文件一行?

用于不可搜索流的 Ruby 迭代器

Python 2.7 : While loop, 无法突破

linux - 作为参数传递时删除字符串的内部引号

c++ - 如何使用Mongoose(一个http服务器)来服务不同的请求?

C FIFO - 如何在等待客户端请求时读取服务器的标准输入

linux - for 循环中的星号无法按预期工作?

javascript - 使用 While 循环添加到字符串