在函数 中返回一个值在 bash 中呼应

Returning a value in a function witch echoes in bash

我正在尝试创建一个 bash 函数,但此函数必须显示一些消息和 return 一个值。 这是一个例子:

#!/bin/bash

function test() {
        echo "Hello"
        return 0
}

if [ $(test) ]; then
        echo "yes"
else
        echo "no"
fi

但是我无法捕获 returning 值,如果我执行回显退出。 这是可能的? 此致

当然可以:if 分支基于 return 状态,并将输出分配给变量不会影响 return 状态:

if output=$(testFunc); then
  echo "success: $output"
else
  echo "failure: $output"
fi

如果您需要 return 值,您可以从 $? 变量中获取:

output=$(foo 0)
rc=$?
if [[ $rc -eq 0 ]]; then        # or `if ((rc == 0))`, an arithmetic comparison
  echo "success: $output $rc"   # $rc will always be 0 here
else
  echo "failure: $output $rc"
fi