Normalmente, a falha de um comando é sinalizada por seu status de saída diferente de zero. Nesse caso, usar &&
resolve seu problema:
ls /nonexistent-file && echo This won\'t be printed
Se você precisar verificar a saída, use grep
e ||
:
echo fail | grep 'fail\|error' || echo This won\'t be printed
Não se esqueça de citar o conteúdo do alias:
alias safe-ls='ls /nonexistent-file && echo This won'\''t be printed'
Se você precisar de parâmetros para os comandos, terá que usar funções:
safe-ls () {
ls "$1" && echo This won\'t be printed
}