Bu şablonun nedeni, Debian paketlerindeki koruyucu komut dosyalarının başlama eğilimi göstermesidir set -e
; bu, herhangi bir komutun (kesinlikle konuşma, boru hattı, liste veya bileşik komut) sıfır olmayan bir durumdan çıkar çıkmaz kabuğun çıkmasına neden olur. Bu, hataların birikmemesini sağlar: bir şeyler ters giderse, komut dosyası iptal edilir.
Koddaki bir komutun başarısız olmasına izin verilen durumlarda, ekleme || true
, sonuçta elde edilen bileşik komutunun her zaman sıfır durumuyla çıkmasını sağlar, böylece komut dosyası iptal edilmez. Örneğin, bir dizini kaldırmak çok önemli bir hata olmamalıdır (bir paketin çıkartılmasını engellemek); bu yüzden kullanırdık
rmdir ... || true
çünkü rmdir
hataları görmezden gelmesini söyleme seçeneğine sahip değil.
||:
bu (yazma başka deyimsel yoludur:
işaret yerleşik tabloda başka giriş olmanıntrue
ancak - garantili bile geri Bourne bir yerleşiğini olmak; POSIX sh için, söz konusutrue
aynı şekilde bir yerleşik olması sağlanır - bu yüzden bu kadar uzaktan bile modern zamanlarda verimden daha fazla netlik).