Shell - function 返回布尔值

三味码屋 2024年06月18日 59次浏览

在 Shell 脚本中,没有真正的 boolean 类型,但可以通过返回不同的退出状态码来表示不同的状态。
以下是一些常见的做法:

  1. 使用退出状态码 0 表示 true,非 0 表示 false:
function is_true() {
  # 假设这是一些检查逻辑
  if [ some_condition ]; then
    return 0  # 返回true
  else
    return 1  # 返回false
  fi
}
 
if is_true; then
  echo "It's true."
else
  echo "It's false."
fi
  1. 使用全局变量或环境变量来传递状态:
function is_true() {
  # 假设这是一些检查逻辑
  if [ some_condition ]; then
    IS_TRUE=true
  else
    IS_TRUE=false
  fi
}
 
is_true
 
if [ "$IS_TRUE" = true ]; then
  echo "It's true."
else
  echo "It's false."
fi
  1. 使用 echo 输出特定字符串来表示状态:
function is_true() {
  # 假设这是一些检查逻辑
  if [ some_condition ]; then
    echo "true"
  else
    echo "false"
  fi
}
 
STATUS=$(is_true)
 
if [ "$STATUS" = "true" ]; then
  echo "It's true."
else
  echo "It's false."
fi

这些方法都可以在 Shell 脚本中用来返回 boolean 值。选择哪种方式取决于具体的应用场景和个人偏好。