のようなツールを探しています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"
。