在bash中,你可以使用函数调用作为if语句中的条件吗?

chi*_*uit 34 bash

这就是我想要实现的目标:

function f1() {
  return 0
}

function f2() {
  return 0
}

if [[ f1 && f2 ]]; then
  echo "success"
else
  echo "fail"
fi
Run Code Online (Sandbox Code Playgroud)

Ign*_*ams 68

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

if f1 && f2 ; then
  echo "success"
else
  echo "fail"
fi
Run Code Online (Sandbox Code Playgroud)

  • 请记住“return 0”意味着“true”,因为这是基于退出代码而不是布尔逻辑。 (5认同)

eva*_*van 5

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

if [[ "$(f1)" == "whatever" ]] 作品

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

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

  • 您不能使用 `$(...)` 来获取返回值。 (3认同)