Executa um script quando um processo lança uma mensagem stderr

2

Eu quero "envolver" um processo em torno do outro para capturar stderr mensagens quando elas ocorrerem.

Caso de uso

Estou usando o Bússola e tenho que ter um terminal aberto e ver se há algo errado. Meu plano é usar a ferramenta terminal-notifier para me enviar notificações do OSX, então noto que ocorreu um erro. Então eu não tenho que manter o terminal aberto na minha tela o tempo todo.

Imagine que eu tenha todo esse mecanismo de notificação sob um script de shell chamado compass-error.sh , que enviará uma notificação quando você chamá-lo. Agora quero executar compass watch com meu processo principal e observar stderr para disparar compass-error.sh . Como faço isso?

    
por Mohsen 02.07.2013 / 02:32

1 resposta

2
output="$(./compass 2>&1 1>/dev/null)"
if [ -n "$output" ]; then
  echo "$output" | mail ...
fi
    
por 02.07.2013 / 02:55