ステータス コードをエコーし​​ますか?

ステータス コードをエコーし​​ますか?

のようなツールを探していますechoが、ステータスコード用です

$ sts 120
$ echo $?
120

bash のような環境でサブシェルを使用できることは知っています:

$ (exit 120)
$ echo $?
120

しかし、シェルから独立してこれを行う方法はあるのでしょうか?

答え1

パラメータが渡されたかどうかを確認し、そうでない場合は を返す非常に単純なスクリプトを作成できます0

#!/bin/bash

if [ $# -eq 1 ]; then
  # There's no parameter
  exit 0
else
  exit $1
fi

実行権限を付与します ( chmod +x returnscript.sh)。別のスクリプト内でスクリプトを呼び出す方法:

方法1:

/path/to/returnscript.sh 100
retcode=$?
# retcode = 100

方法2:

/path/to/returnscript.sh
retcode=$?
# retcode = 0

答え2

質問の意味がよくわかりません。シェルに組み込まれている機能を使用せずに、コマンド ラインで終了ステータスを指定できるコマンドを探しているようです。なぜでしょうか。動作(exit 120)しないシェルがあるのでしょうか。

ここにいくつかの可能性があります:

  • awk 'BEGIN {exit 120}'
  • echo | sed 'q120'
  • sh -c "exit 120"
  • を実行する独自のスクリプトを作成しますexit "$1"

関連情報