我有以下情况。 我在bash中迭代数组元素并比较值。
#!/bin/bash
for (( i = 0 ; i <=m-1 ; i++));
do for (( j = 0 ; j <=n-1 ; j++));
do
if [ "${sourcedisktype[i]}" == "SSD" -a "${targetdisktype[j]}" == "BSAS" ];
then echo "volume cannot be moved1";
elif [ "${sourcedisktype[i]}" == "SSD" -a "${targetdisktype[j]}" == "SAS" ];
then echo "volume cannot be moved2";
elif [ "${sourcedisktype[i]}" == "SAS" -a "${targetdisktype[j]}" == "BSAS" ];
then echo "volume cannot be moved3";else
echo "Volume can be moved for this combination of disk type";done;done;
即使一个elif失败,我也不想执行else部分。有没有办法做到这一点。是否有可能在elif之后使用break语句?
答案 0 :(得分:1)
当然你可以在bash的循环中break
,如果你使用N
语句break N
,你甚至可以突破N
嵌套循环整数>=1
。
有关详细信息,请查看文档: http://tldp.org/LDP/abs/html/loopcontrol.html
你实际上也可以使用continue N
但是对其他人来说可能非常棘手且难以理解,因此我不建议使用它。