Se você quiser escrever um shell script portátil, você deve ficar com o POSIX, já que é o padrão mais confiável no mundo Unix.
Basear-se em /bin/sh
, sendo tudo menos uma shell Bourne, é um estilo ruim e provavelmente irá quebrar mais cedo ou mais tarde.
Como o POSIX não suporta o ERR
trap, você precisa adicionar manualmente o seu manipulador de erros a qualquer comando para o qual você deseja, usando ||
. Por exemplo:
#!/bin/sh
error(){
echo "Error at $1"; exit 1 ## we don't have $LINENO in POSIX
}
while read LINE
do
echo "+ $LINE"
false
done < file.txt || error "while loop"