如何在bash for循环中构建复合条件

时间:2018-03-12 07:57:46

标签: bash

我有以下周期:

flag=true
for ((i = 0; (( i <= ${#array[@]} / 5 - 1 && "$flag" == true )); i++))
do
   flag=false
   echo "The loop continues."
done

我的for循环继续,偶数标志设置为false。似乎剩下的条件是循环&#34; $ flag&#34; == true未评估。如果flag设置为false,如何修复for循环中的条件取消循环周期?

1 个答案:

答案 0 :(得分:2)

  

你不能使用C风格的构造......

该陈述是 false 。问题中写的代码可以通过melpomene建议的更改来纠正:

  

您也可以使用10代替truefalse,   分别

flag=1
for ((i = 0; (( i <= ${#array[@]} / 5 - 1 && "$flag" == 1 )); i++))
do
  flag=0
  echo "The loop continues."
done