[英]Loop BASH with counter in one line
我等待程序完成,什么也不打印; 但是这个介绍循环:
while [ 0 > 0 ]; do echo 1; done
逻辑上0不是>> 0 ...为什么要循环?
我如何无法通过屏幕获得任何信息? 程序完成正常吗?
在我的节目“无所事事”之后:
while [ 0 > 0 ]; do echo 1; done
我喜欢一行:
q = 0; while [ q < 9 ]; q ++; do echo q; done
有可能在一排吗?
谢谢
q = 0; while [ q < 9 ]; q ++; do echo q; done
一行中只有5个错误。
可能的解决方案:
q=0; while [[ q -lt 3 ]]; do ((q++)); echo $q; done
1
2
3
回声值可以用
echo {1..9}
也是如此,但不灵活,因此您不能在内部使用变量扩展,例如echo {1..$n}
。 进行初始化,增量和阈值检查的规范方法是for循环:
for (( q=1; q < 4; ++q)); do echo $q ; done
因此,建议不要使用外部程序seq:
seq 1 3
第一个问题:
while [ 0 > 0 ]; do echo 1; done
在使用文件重定向的位置查找文件0(而不是-gt),例如在echo foo > 0.file
。
代替
while [ 0 -gt 0 ]; do echo 1; done
因为它什么都不做。 它没有等待任何东西。 您的程序是顺序的,然后无论如何都将在此时完成。 或在后台运行的程序/命令,无论如何都不会在意此反循环。
对于第二个问题,请使用(((expr1; expr2; expr3))); 做清单; DONE
另请参阅man bash
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.