Olá pessoal,
Andei lendo em livros e pesquisando na net se é possível capturar mensagens de erros ou retornos diferentes de zero numa cadeia de comandos num pipe.
Exemplo:
Código:
terminal:/tmp> cat arquivo_que_nao_existe | awk '{ print $0 }' | sort -u > destino.txt
cat: cannot open arquivo_que_nao_existe
terminal:/tmp> echo $?
0
terminal:/tmp>
Se o último comando funcionar então não será possível capturar simplesmente usando $? pois irá conter o retorno do sort -u, que funcionou sem erros.
Tive alguma idéias para fazer isso de forma indireta, como redirecionar os erros pra um arquivo. Mas nesse caso eu teria que incluir 2>errors.log para cada comando, exemplo:
Código:
terminal:/tmp> cat arquivo_que_nao_existe 2>>errors.log | awk '{ print $0 }' 2>>errors.log | sort -u 2>errors.log > destino.txt
cat: cannot open arquivo_que_nao_existe
terminal:/tmp> echo $?
0
terminal:/tmp>
Alguém sabe se isso é possível?
Obrigado!
Jean