Script ini tidak menggema "setelah":
#!/bin/bash -e
echo "before"
echo "anything" | grep e # it would if I searched for 'y' instead
echo "after"
exit
Itu juga akan terjadi jika saya menghapus -e
opsi pada baris shebang, tetapi saya ingin menyimpannya sehingga skrip saya berhenti jika ada kesalahan. Saya tidak menganggap grep menemukan kecocokan sebagai kesalahan. Bagaimana saya dapat mencegahnya keluar begitu tiba-tiba?
var=$(complex command | grep complex_pattern)
yang mungkin nol (dalam hal ini program saya seharusnya tidak berakhir). Ini hanyalah skrip rebus yang membuat masalah terjadi. Tidak ada lubang hitam metafisik dalam logika di sini, kan? ;)
-e
Anda mengira Anda benar-benar peduli: sedemikian rupa sehingga masalah apa pun adalah bencana besar.