我想编写一个 Bash 脚本来处理文本,这可能需要一个 while 循环。
例如,C 中的 while 循环:
int done = 0; while(1) { ... if(done) break; }
我想编写一个与之等效的 Bash 脚本。但是我通常使用的以及我读过的所有经典示例都表明,是这样的:
while read something; do ... done
它对如何执行while(1){}and没有任何帮助break;,它在 C 中定义明确并广泛使用,而且我不必为标准输入读取数据。
while(1){}
break;
任何人都可以帮助我使用与上述 C 代码等效的 Bash 吗?
中并没有什么不同bash。
bash
workdone=0 while : ; do ... if [ "$workdone" -ne 0 ]; then break fi done
:是无操作命令;它的退出状态始终为 0,因此循环一直运行,直到workdone被赋予非零值。
:
workdone
您可以通过多种方式设置和测试 的值workdone以退出循环;我在上面展示的那个应该可以在任何 POSIX 兼容的 shell 中工作。