如果所有条件成功,如何在bash中返回true?

时间:2016-10-03 08:16:31

标签: linux bash shell

是否有任何特定的方法来检查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。请让我知道如何解决这些类型的脚本。

1 个答案:

答案 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
}