Tente
bash -x /my/script
para imprimir todas as linhas do script conforme ele é executado.
Não é possível executar o script assim? Você também pode adicioná-lo ao shebang na primeira linha do arquivo.
#!/usr/bin/bash -x
Estou trabalhando com um projeto terrível. Ele usa muito script de shell bagunçado no fundo. O script pode incluir alguns outros scripts. E muitas saídas de erro foram redirecionadas para / dev / null. Quando um script não é executado com êxito, posso usar echo $?
para ver o código de erro, mas não consigo saber qual comando retornou esse código de erro.
Esses scripts estão lá. Eu não quero rever todo o código e adicionar código extra para lidar com erros de uma forma gentil. Agora eu tenho duas perguntas aqui:
Como Michael disse e também costumo usar na verificação de erros para scripts bash $ LINENO - cada vez que este parâmetro é referenciado, o shell substitui um número decimal representando o número da linha seqüencial atual (começando com 1) dentro de um script. p>
Então, após determinado comando, eu faria:
if [ $? = 0 ]; then
echo "Command "Foo" finished successfully."
else
echo "Error occurred on line $LINENO in command "Foo" with exit status $?"
fi
Algo parecido com isto. Espero que isso ajude.