Posso capturar mensagens de trap juntamente com $ LINE_NO?

0

Eu tenho um código como:

trap 'error ${LINENO} ${BASH_COMMAND}' ERR

Eu quero capturar mensagens de erro junto com isso. Existe alguma variável interna para imprimir mensagem de erro?

    
por Jyoti Dhiman 22.06.2017 / 10:01

1 resposta

0

O tratamento de erros em scripts de shell é bastante simples. As únicas maneiras padronizadas de detectar qualquer tipo de problema são o código de retorno de um comando (diferente de zero em caso de erro) e o conteúdo impresso para erro padrão (descritor de arquivo 2) ). O erro padrão será, por padrão, impresso no seu terminal. Se você precisar passá-lo para error , por exemplo, porque as mensagens de erro são afogadas em outra saída, você poderia, por exemplo, substituir o shell atual por um que salva um erro padrão em um arquivo temporário :

trap 'rm -f "${stderr_output_file}"' EXIT
stderr_output_file="$(mktemp)"
exec 2>"${stderr_output_file}"
[the rest of your program]
    
por 22.06.2017 / 14:04