【问题标题】:In bash, can you use a function call as a condition in an if statement?在 bash 中,你可以在 if 语句中使用函数调用作为条件吗?
【发布时间】:2011-11-14 05:51:49
【问题描述】:

这是我想要达到的目标:

function f1() {
  return 0
}

function f2() {
  return 0
}

if [[ f1 && f2 ]]; then
  echo "success"
else
  echo "fail"
fi

【问题讨论】:

    标签: bash


    【解决方案1】:

    在运行命令并检查结果代码时不要使用[[(或[)。

    if f1 && f2 ; then
      echo "success"
    else
      echo "fail"
    fi
    

    【讨论】:

    • 记住 return 0 的意思是 true 因为这是基于退出代码而不是布尔逻辑。
    【解决方案2】:

    是的。您可以通过 echo 检查返回来做到这一点(尽管不是严格的返回):

    if [[ "$(f1)" == "whatever" ]] 有效

    有关函数返回值的更多信息,请参阅此页面。它也有几个很好的 cmets 专门讨论 if 语句。

    http://www.linuxjournal.com/content/return-values-bash-functions

    【讨论】:

    • 你不能使用$(...)来获取返回值。
    猜你喜欢
    • 1970-01-01
    • 2020-06-06
    • 1970-01-01
    • 1970-01-01
    • 2021-07-30
    • 2010-11-10
    • 1970-01-01
    • 2019-12-17
    • 1970-01-01
    相关资源
    最近更新 更多