Bash関数の暗黙的な戻り値?

Bash関数の暗黙的な戻り値?

다음과 같은 bash 기능이 있다고 가정해 보겠습니다.

gmx(){
  echo "foo";
}

関数はコマンドの終了値を暗黙的に返しますかecho、それともreturnを使用する必要がありますか?

gmx(){
  echo "foo";
  return $?
}

私はbashがどのように機能するか、bash関数の最後のコマンドの終了状態が「return」状態であると仮定していますが、100%確信できません。

ベストアンサー1

return何かを作る明らかにシェル関数または「ドットスクリプト」(ソーススクリプト)から返されます。実行されない場合は、returnシェル関数またはドットスクリプトの末尾から暗黙的に返されます。

パラメータなしで実行すると、return最後に実行したコマンドの終了ステータスを返すのと同じです。

これがreturnすべてのPOSIXシェルで機能する方法です。

例えば、

gmx () {
  echo 'foo'
  return "$?"
}

したがって、次のようになります。

gmx () {
  echo 'foo'
  return
}

これは次のとおりです。

gmx () {
  echo 'foo'
}

一般的に言って使用する必要はほとんどありません$?。実際には、後で使用するために保存する必要がある場合にのみ必要です。たとえば、その値を複数回調査する必要がある場合(この場合、その値を変数に割り当てて一連のテストを実行します)。

おすすめ記事