bash中是否有do
- while
循环?
我知道如何在bash中编写while
循环:
while [[ condition ]]; do
body
done
是否存在类似的构造,但对于do
- while
循环,body
至少执行一次而不考虑while
条件?
答案 0 :(得分:5)
while
循环足够灵活,可用作do-while
循环:
while
body
condition
do true; done
例如,要求输入并循环直到它是一个整数,您可以使用:
while
echo "Enter number: "
read n
[[ -z $n || $n == *[^0-9]* ]]
do true; done
这比普通的do-while
循环更好,因为您可以拥有仅在第一次迭代后执行的命令:将true
替换为echo "Please enter a valid number"
。
答案 1 :(得分:1)
不,do-while
中没有bash
运算符。您可以使用以下方式模拟它:
while true; do
body
[[ condition ]] || break
done
答案 2 :(得分:1)
你可能只想尝试这个,我不相信在bash中有这样的事情。
doStuff(){
//first "iteration" here
}
doStuff
while [condition] do
doStuff
done