bash - while 循环永远不会结束

标签 bash shell loops while-loop

我正在使用 bash,我正在尝试做这样的事情:

A=1
while [ $A=1 ]; do
    read line
    echo $line | grep test >/dev/null   
    A=$?
    echo $A
done 

即使 grep 成功完成并且 A 设置为 0,此脚本也永远不会结束。我在这里缺少什么?以下是输出示例。

$ ./test.sh

asdf

1

测试

0

嗯...

1

最佳答案

您需要使用正确的比较运算符。 Bash 具有不同的整数和字符串比较运算符。

此外,您需要比较表达式中的正确间距。

你需要

while [ $A -eq 1 ]; do

参见 here更多

关于bash - while 循环永远不会结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2327455/

相关文章:

linux - shell 输出文件的奇怪行为 ( Linux )

java - 为什么我的 Java "for"循环立即结束?

r - 在 FOR 循环中使用 revgeocode 函数。需要帮助

regex - 使用正则表达式 bash 将字符串提取到变量

linux - 文件的标准输出/错误是一个单独的过程吗? (Linux)

linux - 如何打印特定模式下表中的总行数?

android - bash/mksh 的 Android 实现中此处文档/字符串的问题

ruby-on-rails - Docker: chmod: 无法访问 'chmod' : 没有这样的文件或目录

linux - 使用 tail -F 实时查看文件变化

java - for(;;) 循环使我的小程序无法使用