如何模拟从 shell 函数返回任意值?

如何模拟从 shell 函数返回任意值?

Shell 函数只是语句,不返回值。谁能分享在 bash 中编写返回值的函数的最佳实践吗?

假设我有一个连接两个字符串的函数:

JoinStrings() {
    returnValue="$1$2"
}

如何在我的代码中重用此函数?我如何才能returnValue回复呼叫者?我应该在这个函数调用之后将它用作全局变量吗?这会导致到处都有全局变量的许多错误...如何在 shell 中实现代码重用?

答案1

在 Unix 和 GNU 中,标准输出函数的值可以被认为是返回值。

这是使用 shell 命令扩展的示例$(...)

JoinStrings() {
    echo "$1$2"
}

joined_strings=$(JoinStrings string1 string2)

echo string1 and string2 joined are $(JoinStrings string1 string2)

有一个return在函数中使用的 shell 语句,它设置命令的退出代码(状态代码)。退出代码是一个小整数。

相关内容