こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

投稿日時 - 2005-09-27 18:43:28

QNo.1677046

困ってます

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

>if [ $ST == 0 ]; then

if [ $? = 0 ]; then

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

投稿日時 - 2005-09-27 19:27:58

お礼

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

投稿日時 - 2005-09-28 09:50:11

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.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

投稿日時 - 2005-09-28 13:57:36

あなたにオススメの質問