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

时间:2011-11-14 05:51:49

标签: bash

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

function f1() {
  return 0
}

function f2() {
  return 0
}

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

2 个答案:

答案 0 :(得分:64)

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

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

答案 1 :(得分:3)

是。你可以通过回波检查返回(虽然不是严格的回报):

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

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

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