Python 有一个方便的语言特性,叫做“for-else”(类似地,“while-else”),它看起来像这样:
for obj in my_list:
if obj == target:
break
else: # note: this else is attached to the for, not the if
print "nothing matched", target, "in the list"
本质上,else
如果循环中断,则跳过,但如果循环通过条件失败(for while
)或迭代结束(for)退出,则运行for
。
有没有办法做到这一点bash
?我能想到的最接近的是使用标志变量:
flag=false
for i in x y z; do
if [ condition $i ]; then
flag=true
break
fi
done
if ! $flag; then
echo "nothing in the list fulfilled the condition"
fi
这更冗长。