返回值并打印错误消息的 Bash 函数

返回值并打印错误消息的 Bash 函数

是否可以编写一个打印错误的函数,尽管该函数用于返回参数?

我尝试过这个,但它不起作用......

my_function() {
    echo "return value"
    >&2 echo "error message"
}

echo $(my_function) >> /dev/null 

我期望控制台输出

error message

编辑:实际上是这样工作的。

答案1

仅使用my_function 1>/dev/null.

$ my_function() {
    echo "return value";
    >&2 echo "error message";
}

$ my_function 1>/dev/null
error message

$ my_function 2>/dev/null
return value

答案2

为了完成:

my_function() {
    echo "return value"
    >&2 echo "error message"
}

MY_VAR=$(my_function)

echo $MY_VAR

现在以正确的顺序为我提供了我想要的确切输出:

error message
return value

相关内容