Você sempre pode tentar fazer um pipe através de outra coisa, como cat
, para se livrar do código de saída do grep - embora isso possa ser um golpe maior do que você deseja.
Quando preciso suprimir algum tipo de saída, por exemplo
foo | grep -v bar
Mas foo às vezes só:
bar
bar
bar...
grep retornará -1. Como faço para transformar o código de saída 1 para 0?
Pelo menos no bash, você pode usar
foo || (EC=$?; if [ $EC -ne 1 ]; then exit $EC; fi)
Isso altera o código de saída 1 para 0 e não altera mais nada.
(Talvez não seja compatível com POSIX, mas provavelmente existe uma versão compatível com POSIX.)