No-op komutuna dair orijinal soruyu cevaplamasam da, " bu dalda hiçbir şey yapmam gerekiyor " diye düşünebileceğim birçok (çoğu değilse) sorun , bu dalın kazanması için mantığı yeniden yapılandırarak atlanabilir. oluşmaz.
OP örneğini kullanarak genel bir kural vermeye çalışıyorum
$ a "10" dan büyük olduğunda hiçbir şey yapmayın, $ a "5" değerinden düşükse "1" yazdırın, aksi takdirde "2" yazdırın
Genel bir koşul, aşağıdaki koşulu takip edebilmek için $a
10'dan fazla alan bir daldan kaçınmalıyız $a < 10
.
Genel olarak, X olduğunda hiçbir şey yapmadığınızı söylediğinizde , X'in olduğu bir daldan kaçınmak için bunu tekrarlayın . Genellikle X'ten vazgeçerek ve diğer tüm koşullara uygulayarak kaçınmayı gerçekleştirebilirsiniz.
Dolayısıyla, uygulanan kurala sahip OP'ler örneği şu şekilde yeniden yapılandırılabilir:
if [ "$a" -lt 10 ] && [ "$a" -le 5 ]
then
echo "1"
elif [ "$a" -lt 10 ]
then
echo "2"
fi
Her şeyi $a < 10
koşulda kapsayan, yukarıdakilerin sadece bir varyasyonu :
if [ "$a" -lt 10 ]
then
if [ "$a" -le 5 ]
then
echo "1"
else
echo "2"
fi
fi
(Bu özel örnek için @Flimzys'in yeniden yapılandırılması kesinlikle daha iyidir, ancak hiçbir şey yapmamak için arama yapan tüm insanlar için genel bir kural vermek istedim.)
true
. Kabuğun içine yerleştirilmiştir ve hiçbir şey yapmaz.