2011-01-19 8 views
0

私はinit.dサービスを作成していましたが、参考用にいくつかのスクリプトを読んでいました。私はスケルトンでこれを見つけました:シェルスクリプトに関するヘルプ

このスニペットは何をしますか?私はこれがswitch:caseだと分かります。ケース内のケースについて質問しています。

case "$1" in 
    start) 
     echo test 
     case "$?" in 
       0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 
       2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; 
     esac 

PS:タイトルすみません、私はより良い名前の

おかげだと思いませんでした。

+1

このスニペットは、不完全であるため*構文エラー*となります。 – Sorpigal

答えて

2

実際のスクリプトのように、「エコーテスト」よりも実質的なものがあるかもしれません。 $?このスクリプトのechoコマンドによって返される終了コードです。 inside caseステートメントは、終了コードに適したログメッセージを出力します。 0 | 1は成功する可能性が最も高い。 2はおそらくエラーです。

+0

私はちょうどこの行を持っています: 'cd/usr/share/jetty;/usr/bin/java -jar start.jar' – theTuxRacer

+0

この場合、javaプロセスの終了ステータスがチェックされます。 –

0

$?最後に実行されたコマンドの終了コードを保持します。 0の場合、エラーはありません。

関連する問題