在阅读了大量的文档和多个SO解决方案之后,我仍然无法用读行命令在while循环中获得正确的语法。
我尝试了下面的堆栈溢出解决方案,但没有效果。
!/bin/bash
while (( $(read -r line) && "$1" != 1 ))
do
#Do stuff
done < myFile.txt我得到的错误是((: && 8 != 1 : syntax error: operand expected (error token is "&& 8 != 1 "
还尝试了read -r line,而不是将其包装在$符号中,但仍然没有工作。
我哪里出错了?
编辑:忽略我原来文章的逻辑。最终会改变的。我只是想找出正确的语法。
发布于 2015-06-26 13:45:58
我认为这里正确的语法是:
#!/bin/bash
while read -r line && (( "$1" != 1 ))
do
# some stuff
done < myFile.txt如果您想让循环运行,只要read成功,(( ))命令就需要在(( ))之外运行。尽管如此,我不确定您所使用的条件,因为$1是传递给您的脚本的第一个参数,您向我们展示的脚本永远不会改变。
https://stackoverflow.com/questions/31074718
复制相似问题