Questo script non fa eco "dopo":
#!/bin/bash -e
echo "before"
echo "anything" | grep e # it would if I searched for 'y' instead
echo "after"
exit
Lo farebbe anche se avessi rimosso l' -e
opzione sulla riga shebang, ma desidero mantenerlo in modo che il mio script si interrompa in caso di errore. Non considero grep che non trova corrispondenza come errore. Come posso impedirgli di uscire così bruscamente?
var=$(complex command | grep complex_pattern)
che potrebbe essere nullo (nel qual caso il mio programma non dovrebbe terminare). Questo è solo uno script ridotto che causa il problema. Nessun buco nero metafisico nella logica qui, giusto? ;)
-e
presupporre che ti interessi: così tanto che qualsiasi problema è catastrofico.