5

私は仕事で多くのBashスクリプトに戻り、さびています。

関数をグローバルにしたり、echoを使用したりせずに、関数からローカル値の文字列を返す方法はありますか?関数が画面を介してユーザーと対話できるようにするだけでなく、のようなものなしで戻り値を変数に渡すことができるようにしたいですexport return_value="return string"。printfコマンドはechoとまったく同じように応答するようです。

例えば:

function myfunc() {
    [somecommand] "This appears only on the screen"
    echo "Return string"
}

# return_value=$(myfunc)
This appears only on the screen

# echo $return_value
Return string
4

3 に答える 3

9

いいえ。Bash は、関数から数値の終了ステータス以外は何も返しません。選択肢は次のとおりです。

  1. 関数内に非ローカル変数を設定します。
  2. echoprintf、または同様のものを使用して出力を提供します。その出力は、コマンド置換を使用して関数の外部に割り当てることができます。
于 2013-01-23T15:40:43.817 に答える