Altera o código de saída de 0 para 1 no script bash

0

Eu tenho um script que rsyncs e termina assim

rsync -azvh /dir -e ssh [email protected]:/
RESULT="$?"

# check result of rsync db's
if [ "$RESULT" != "0" ]; then
    echo -e "rsync exit Code:" $RESULT "\nFAILED to rsync backups"
else
    echo "SUCCESSFULL rsync of backups"
fi

Acabei de ser solicitado a envolvê-lo em uma API, mas a API informa que 0=fail e 1=success . Como posso alterar o código de saída para refletir isso? Preciso atribuir uma variável a ela?

    
por eekfonky 04.11.2016 / 17:18

2 respostas

5

exit 1 sairá com um código de erro de 1 e exit 0 sairá com um código de erro de 0.

Por exemplo:

rsync -azvh /dir -e ssh [email protected]:/
RESULT="$?"

# check result of rsync db's
if [ "$RESULT" != "0" ]; then
    echo -e "rsync exit Code:" $RESULT "\nFAILED to rsync backups"
    exit 0
else
    echo "SUCCESSFULL rsync of backups"
    exit 1
fi
    
por 04.11.2016 / 17:28
1

Resposta revisada, o relatório false ( exit 1 também funcionaria) e true conforme necessário, conforme API não padrão:

rsync -azvh /dir -e ssh [email protected]:/
RESULT="$?"
# check result of rsync db's
if [ "$RESULT" = "0" ]; then
    echo "SUCCESSFULL rsync of backups"
    false
else
    echo -e "rsync exit Code:" $RESULT "\nFAILED to rsync backups"
    true
fi
    
por 06.11.2016 / 03:41

Tags