Captura do código de status de saída do ssh

1
#!/bin/bash
RET=0
export RET
{
ssh -q -t  user@host <<EOF
echo "hello there "
exit 10
EOF
RET=$?
echo "Out is" $RET
} &
echo "RET is $RET"
################## End

Eu recebo RET 0 OUT é 10

Como posso obter o código de status de saída correto no bloco externo. Eu preciso ver o código de saída 10.

    
por Sanjay 03.10.2016 / 20:26

1 resposta

5

Você precisa executar o comando no primeiro plano

$ (exit 10)
$ echo $?
10

Ou se for executado em segundo plano, explicitamente wait :

$ (sleep 3; exit 10) &
$ wait %%                      # %% refers to the current (last) job
$ echo $?
10

Ou especificando o ID do processo em vez do número do trabalho para wait :

$ (sleep 3; exit 10) & pid=$!
$ wait $pid                    # $! holds the PID of the last background process
$ echo PID $pid exited with code $?
    
por 03.10.2016 / 20:43