コード:
if [cond1]
then if [cond2]
then ...
else skip to elif
fi
elif[cond3]
then ...
fi
2 番目の条件が一致しない場合は、elif にスキップします。
コードが最初のセクションelif
の途中で実行するようにしたいのですが、それが何をしているのかを理解するのは困難です。if
そのelif
部分は関数にする必要があるものですか?
それ以外の場合は、if
ステートメントを再コーディングcondition2
して考慮に入れることができます。
if [ condition1 -a ! condition2 ]
then
....
elif [ condition3 -o condition1 ]
....
fi
これで、句は、条件1が trueで条件if
2 が true でない場合にのみ実行されます。else 句内でcondition2をチェックする必要はありません。
elif
節では、条件 3 が true または条件1が trueの場合に実行します。デフォルトでは、これは condition1 が真である場合に実行されますが、これはcondition2も真である場合に限られます。それ以外の場合は、条項を実行したことになります。 if
ちなみに、回答のいくつかは、私が与えたものとほぼ一致しています。ただし、その条件にor
句を追加する必要があります。条件 1が真、条件 2が真、条件3が偽の場合はどうなるでしょうかelif
。その句を実行したい。右?elif