是否有任何特定的方法来检查for循环中的条件是否为true并返回true。 前 -
`
check_all_1_to_8_eq()
{
for i in {1..8}; do
if [ a == $i ];then
return 0
else
return 1
fi
done
}`
我想检查是否所有1到8都返回true然后函数结束返回true,如果on条件返回false,则函数返回false。请让我知道如何解决这些类型的脚本。
答案 0 :(得分:3)
如果条件成功,则继续循环,并在循环外继续return
。如果条件失败,那么return
:
check_all_1_to_8_eq () {
for i in {1..8}; do
if [ ! a == "$i" ]; then
return 1
fi
done
return 0
}
[ ! a == "$i" ]
检查变量i
($i
)的值是否 等于a
。
您可以利用短路评估||
(仅在前面的命令失败时运行其后的命令),这里我们将进行公平性检查[ a == "$i" ]
:
check_all_1_to_8_eq () {
for i in {1..8}; do
[ a == "$i" ] || return 1
done
return 0
}