シェル関数で任意の値の戻り値をシミュレートする方法は?

シェル関数で任意の値の戻り値をシミュレートする方法は?

シェル関数は単なる文であり、値を返しません。 Bashから値を返す関数を書くためのベストプラクティスを共有できる人はいますか?

2つの文字列を連結する関数があるとしましょう。

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

私のコードでこの関数をどのように再利用できますか?returnValue発信者にどのように対応できますか?この関数呼び出し後にグローバル変数として使用する必要がありますか?これにより、どこでもグローバル変数に多くのバグが発生します。シェルでコードを再利用するには?

ベストアンサー1

UnixとGNUでは標準出力関数の値は戻り値と考えることができます。

以下は、シェルコマンド拡張を使用する例です$(...)

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

joined_strings=$(JoinStrings string1 string2)

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

returnコマンドの終了コード(ステータスコード)を設定する関数に使用されるシェルステートメントがあります。終了コードは小さな整数です。

おすすめ記事