无法让它退出循环,也许我不太了解while循环以使其停止。这就是我在命令行中输入的内容。我希望它能在10点停止。
c=1; while : [[$c -le 10]]; do df -Th; echo "$c"; date; c=`expr $((c+=1))`; sleep 6; done
我已经阅读了文章,但它似乎没有帮助:bash while loop won't stop itself
最终代码:
c=1; while [[ $c -le 10 ]]; do df -Th; echo "$c"; date; c=$((c+=1)); sleep 6; done
最终代码需要删除:
并在和
[[$c
之间添加10]]
答案 0 :(得分:3)
在bash中,空格很重要。替换:
: [[$c -le 10]]
使用
[[ $c -le 10 ]]
当bash遇到
时: [[$c -le 10]]
它使用三个参数:
,[[$c
和-le
执行命令10]]
。这不是你想要的。首先,:
是no-op命令:无论其参数如何,它都不执行任何操作。其次,如果你想运行[[
测试命令,它需要,如上所示,它周围的空格。
有几种方法可以在bash中循环10次。一个人:
$ for c in {1..10}; do echo "$c"; done
1
2
3
4
5
6
7
8
9
10
另一个:
$ for ((c=1;c<=10;c++)); do echo "$c"; done
1
2
3
4
5
6
7
8
9
10