Eu tenho algum comando .profile
que pode falhar ou ter sucesso, não me importo com o erro, se falhar é só ignorar. No entanto, mesmo se eu colocá-lo em um bloco if e redirecionar sua saída para /dev/null
, ainda aparecerá um erro. Eu também tentei contornar esse comando com set +e
e set -e
mas não funciona. Não quero remover o comando.
if command > /dev/null 2>/dev/null; then
:
else
:
fi
Descobri que a mensagem de erro não veio do comando que pensei. O comando real que está causando o problema não saiu com o código de erro. No entanto, ele registrou uma mensagem em
stderr
.Portanto, para ignorar qualquer erro, precisamos redirecionar os erros de comando para ou
/dev/null
(ou um arquivo de log para depuração).