何かを処理するための bash スクリプト ファイルがあります。
control.sh :
c_command="echo 'Hello'; echo ', Stack Overflow';exit 9";
$c_command;
stat=$?;
if [ $stat -eq 0 ];then
echo 'Do something....'
elif [ $stat -eq 9 ];then
echo 'The system will be rebooting...';
else
echo "..."
fi
変数 $c_command を使用してコマンドを実行すると、終了コードが 9 ではなく 0 になります。コマンド ラインに貼り付けると完璧に動作しますが、スクリプトで実行すると非常に悪いです。
通常、スクリプトで「exit」コマンドを実行すると、スクリプトは終了します。そして、スクリプトではなくコマンドを実行し、実行されたコマンドから終了コードを取得したいだけです。
私はこの問題を解決しました:
$c_command のコードをスクリプト ファイルに入れて実行します。
c_command="echo 'Hello'; echo ', Stack Overflow';exit 9";
echo "${c_command}" > tmp.sh;
/bin/bash tmp.sh;
stat=$?;
if [ $stat -eq 0 ];then
echo 'Do something....'
elif [ $stat -eq 9 ];then
echo 'The system will be rebooting...';
else
echo "..."
fi