• ベストアンサー

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

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

>if [ $ST == 0 ]; then を if [ $? = 0 ]; then >set ST = $status は、不要だし、もしやるとしてもコマンドの後でないと意味がない コマンドの実行成功不成功は $? に(0|1で)入ります ==は=の間違いだと思います (bashの場合)

kakeru_333
質問者

お礼

ありがとうございます。 非常に為になりました。これからも勉強いたしますので宜しくお願い致します。

その他の回答 (1)

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.2

なんか変な参考書を読んだようですね。 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

関連するQ&A