bash - bash 是否有不短路的 bool 值和/或运算符?

标签 bash

我希望能够始终执行 validateA 和 validateB:

function validateA() {
  echo "A [ok]"
  return 0
}

function validateB() {
  echo "B [ok]"
  return 0
}

if ! validateA | ! validateB; then 
  echo "validation [fail]"
  exit 1
else
  echo "validation [ok]"
  exit 0
fi

最佳答案

你可以不管调用它们并捕获返回值:

function validateA() {
    echo "A [fail]"
    return 1
}

function validateB() {
    echo "B [ok]"
    return 0
}

validateA ; vA=$?
validateB ; vB=$?

if [[ $vA -ne 0 || $vB -ne 0 ]] ; then
    echo "validation [fail]"
    exit 1
else
    echo "validation [ok]"
    exit 0
fi

这个输出:

A [fail]
B [ok]
validation [fail]

关于bash - bash 是否有不短路的 bool 值和/或运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8118056/

相关文章:

bash - 如何使用 grep 和 rm 删除文件?

linux - Bash 脚本中的解析错误

bash - 用特定字符填充行,直到它包含给定数量的字符

带通配符的 Bash 脚本

bash - 使用文件的内容使用 SED 替换字符串

linux bash - 比较两个文件并删除具有相同结尾的重复行

c - Hook 在终端上。我可以在终端中运行命令之前调用方法吗?

bash - Unix Bash AIX - 从一个目录查找文件,但不在另一个目录中查找文件

bash - 是否可以在进入目录时自动进行一些 shell 调用?

linux - 我希望linux终端中的命令提示符在打印到终端后出现在新行中