Sair do status do comando sh?

0

Oi eu estou chamando um script shell de dentro de outro script de shell e se essa chamada de script for bem sucedida eu tenho que prosseguir e estou usando o comando sh para chamar outro script como:

sh payloadjob.sh
if [[ $? -eq 0 ]]; then
    echo Success message 
else
    echo Failure message
fi

Mas estou percebendo que mesmo a chamada do script foi bem-sucedida Saia do status como 1, no entanto, ele deve retornar 0 para o sucesso porque está acontecendo e como eu sei que a chamada do script via comando sh foi bem-sucedida ou não?

    
por ProgBeginner 17.05.2017 / 13:33

1 resposta

3

Se o script payload.sh não estiver saindo com um exit 0 ou exit 1 explícito, o status de saída será o último comando no script.

Se este último comando, por exemplo, rm something 2>/dev/null , o status de saída será diferente de zero se something não puder ser encontrado ou removido.

No script que você mostrou, você está testando corretamente a variável $? . Você também pode simplificar o teste para o equivalente

if sh payload.sh; then
    echo "Success"
else
    echo "Failure"
fi
    
por 17.05.2017 / 13:47