Seu comando (com aspas duplas adicionadas):
ssh "$user@$slave_ip" bash "$dest_root/$dest_dir/slave_run"
A captura do código de saída estará em $?
após a execução desse comando.
Exemplo:
$ ssh someserver sh -c 'false'
$ echo $?
1
Para capturá-lo:
$ ssh someserver somecommand
$ code=$?
Como alternativa, obtenha o comando no servidor para gerar o código de saída e capturá-lo como uma string:
$ code=$( ssh server sh -c "somecommand; echo \$?" )
No seu caso:
$ code=$( ssh "$user@$slave_ip" sh -c "$dest_root/$dest_dir/slave_run; echo \$?" )
É necessário escapar o $
de $?
, pois o comando está entre aspas duplas e gostaríamos que $?
fosse avaliado pelo shell no lado do servidor, não pelo shell no cliente. / p>