- ベストアンサー
Linuxのシェルについて
いつもお世話になっております。 Linux(redhat)でのシェルスクリプトを作成したいと思いますが、あるコマンドを実行して実行成功したか失敗したかをstatusで拾う形にしたのですがうまくいきません。アドバイスをお願いします。 例: #!/bin/sh set ST = $status date ←コマンド if [ $ST == 0 ]; then echo "**************" echo "* o k *" echo "**************" exit $NORMAL else echo "**************" echo "* N G *" echo "**************" exit $ABEND fi
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>if [ $ST == 0 ]; then を if [ $? = 0 ]; then >set ST = $status は、不要だし、もしやるとしてもコマンドの後でないと意味がない コマンドの実行成功不成功は $? に(0|1で)入ります ==は=の間違いだと思います (bashの場合)
その他の回答 (1)
- notnot
- ベストアンサー率47% (4900/10358)
なんか変な参考書を読んだようですね。 if コマンド then コマンドが成功したときの処理 else コマンドが失敗したときの処理 fi を使います。 NORMAL=0 ABEND=1 if date then echo "**************" echo "* o k *" echo "**************" exit $NORMAL else echo "**************" echo "* N G *" echo "**************" exit $ABEND fi
お礼
ありがとうございます。 非常に為になりました。これからも勉強いたしますので宜しくお願い致します。