if
状態があります。その条件が真の場合、1つのスクリプトが実行され、その後、別の条件を確認する必要があります。
if
ステートメントなどを使用してこれを行うにはどうすればよいですか?
例えば、
if [ condition -eq o ]
then
run script
again condition(this condition depends on above script output value)
run another script
else
exit
コードは次の構造を持つ必要があります。
if [condition -ne 0]
then
do_something
if [expression that depends on exit status of do_something]
then
do something_else
fi
fi
[〜#〜]構文[〜#〜]
if test-commands; then consequent-commands; [Elif more-test-commands; then more-consequents;] [else alternate-consequents;] fi
test-commands
リストが実行され、戻りステータスがゼロの場合、consequent-commands
リストが実行されます。
test-commands
がゼロ以外のステータスを返す場合、各Elifリストが順番に実行され、その終了ステータスがゼロの場合、対応するmore-consequents
が実行され、コマンドが完了します。
else alternate-consequents
が存在し、最後のifまたはElif句の最後のコマンドの終了ステータスがゼロ以外の場合、alternate-consequents
が実行されます。戻りステータスは、最後に実行されたコマンドの終了ステータスです。真の条件がテストされていない場合はゼロです。
例のリンクについては、以下を参照してください。
それはのように聞こえます
first-condition && consequences1
に続く:
(再び)
first-condition && second-condition && consequences2
これは、セカンダリif
を元のファイルに挿入することでif;then;fi
に変更できます。
if [ first-condition ]; then
consequences1
if [ second-condition ]; then # Because first-condition is already true here
consequences2
fi
fi
したがって、consequences2
は「他の」問題ではありません:)ネストは楽しいです。
2番目の条件が単にresults1の出力に基づいている場合は、2番目のif
のテストでそれを実行できます。
if [ first-condition ]; then
if [ consequences1-test ]; then
consequences2
fi
fi
ポットを甘くする 。テストでは何でも実行できることを思い出してください。最後のコマンド(またはstdioの出力)のリターンコードのみですが、次に何かをテストする必要があります。
[ "`consequences1`" == "allok" ]
問題
cd lock if [ $(ls -ltr | grep -q exitup) -eq 0 ]; then rm exitup if [ $(Appl_Monitor | echo $?) -ne 110 ]; then kb_shutdown kb_startup if [ $(ls -ltr | grep -q exitup) - eq 0 ]; then rm exitup if [ $(Appl_Monitor | echo $?) -eq 110 ]; then echo " kb app is fine $(ls -ltr | Appli_Monitor | echo $?) | mailx -s "KB App " [email protected] else echo " Warning KB app is not running $(ls -ltr | Appli_Monitor | echo $?) | mailx -s "KB App " [email protected] fi fi fi fi
私の知識でこのスクリプトを作成しました。間違いがある場合は、提案をしてください。ここで、kb_startup、kb_shutdown、およびappl_monitorは、/ binで定義されているプログラムです。