É possível ver erros ao executar um script dentro de um script?

0

Eu tenho os arquivos my1.sh e my2.sh.

my1.sh:

.... do something
./my2.sh

my2.sh:

.... do something else

Agora, meu problema é que, se algum comando (como ou exemplo de um ntfsclone) falhar em my2.sh, não receberei nenhuma mensagem de erro impressa na tela .... nada, independentemente do que eu tente no my2.sh.

Então, minha pergunta é o que eu preciso fazer em relação ao my2.sh para obter as mensagens de erro de seu conteúdo mostradas na tela?

    
por Thomas 11.01.2016 / 14:16

2 respostas

2

Verifique novamente. De acordo com o que você escreveu em sua pergunta, quando executou ./my2.sh de my1.sh , você não redirecionou a saída de erro para qualquer lugar (usando 2>somewhere ), o que significa que permanecerá exatamente onde estava. Isso significa que você deve obter absolutamente a saída de erro de ./my2.sh indo exatamente para o mesmo local em que a saída de erro de ./mh1.sh está indo.

Para testar, tente inserir isso em my1.sh :

echo "Test error output from my1.sh" >&2

e inserindo isso perto do começo de my2.sh :

echo "Test error output from my2.sh" >&2

Meu palpite é que você obterá ambas as linhas de saída (caso em que não há problema) ou nenhuma delas (nesse caso, o motivo pelo qual você não está obtendo a saída de erro é que a saída de erro é redirecionada para outro local em my1.sh e não tem nada a ver com my2.sh ).

    
por 11.01.2016 / 14:22
0

Você pode tentar colocar o seguinte na parte superior de cada script para depuração de feedback deles.

set -x

Você também pode digitar isso diretamente no cli e ele fará a mesma coisa, apenas lembre de set + x quando terminar para desabilitá-lo.

set +x
    
por 11.01.2016 / 17:31