Meskipun saya tidak menjawab pertanyaan awal yang menyepakati perintah no-op, banyak (jika tidak sebagian besar) masalah ketika orang mungkin berpikir " di cabang ini saya tidak melakukan apa-apa " dapat dilewati dengan hanya menata ulang logika sehingga cabang ini menang tidak terjadi.
Saya mencoba memberikan aturan umum dengan menggunakan contoh OPs
jangan lakukan apa pun ketika $ a lebih besar dari "10", cetak "1" jika $ a kurang dari "5", jika tidak, cetak "2"
kita harus menghindari cabang di mana $a
mendapat lebih dari 10, sehingga $a < 10
kondisi umum dapat diterapkan satu sama lain, mengikuti kondisi.
Secara umum, ketika Anda mengatakan melakukan apa-apa ketika X , maka ulang kata-kata sebagai menghindari cabang di mana X . Biasanya Anda dapat membuat penghindaran terjadi hanya dengan meniadakan X dan menerapkannya pada semua kondisi lainnya.
Jadi contoh OP dengan aturan yang diterapkan dapat direstrukturisasi sebagai:
if [ "$a" -lt 10 ] && [ "$a" -le 5 ]
then
echo "1"
elif [ "$a" -lt 10 ]
then
echo "2"
fi
Hanya variasi di atas, melampirkan segala sesuatu dalam $a < 10
kondisi:
if [ "$a" -lt 10 ]
then
if [ "$a" -le 5 ]
then
echo "1"
else
echo "2"
fi
fi
(Untuk contoh khusus ini, restrukturisasi @Flimzys tentu saja lebih baik, tetapi saya ingin memberikan aturan umum untuk semua orang yang mencari cara untuk tidak melakukan apa-apa.)
true
. Itu dibangun ke dalam shell, dan tidak melakukan apa-apa.