"return" 組み込み関数の終了状態を確認します。

"return" 組み込み関数の終了状態を確認します。

トラップについて読んでいましたが、私のシェルスクリプトではreturnだけが機能していたので、返される状態やコードが何であるかを知りたかったです。

#!/bin/bash
seeOutput=`return`
echo $seeOutput

新しい行を返し、端末で完了すると、次のように表示されます。

-bash: return: can only `return' from a function or sourced script

私はすでにそれを知っています:p "return"の終了ステータスを知る必要があります。

答え1

あなたがやっていることは、return不可解なシェルコマンドを呼び出すことです。通常、return後続の値がない場合は、最後に実行されたコマンドの終了ステータスが返されます。

From man: 関数を終了し、n で指定された戻り値を返します。 nが省略された場合、返される状態は、関数本文で最後に実行されたコマンドの状態です。

答え2

戻りコードは$?に格納されます。

false ; echo $?
true ; echo $?

戻ってくる

1
0

Unixの規則は、0はOKを意味します。あなたの例では、seeOuputは後で参照されるコマンドのすべての出力を保存します。

出力コードと戻りコードが間違っていないことを確認してください。

答え3

これが私が使用する方法です:

f()
{
   ls $AAA
   return $?
}

g()
{
   f
   return $?
}

d()
{
   g
   echo $?
}

AAA=
d

_

<contents of dir>
0

_

AAA=sdsasdasd
d

_

ls: sdsasdasd: No such file or directory
2

関連情報