Ich suche den Exit-Status eines Remote-Befehl ssh in einem Shell-Skript bei Erfassung habe ich ein Shell-Skript wie folgt:bash - Capture-Exit-Code von Remote-Befehl ssh
function rSSH {
local x
echo "Running ssh command"
x=$(ssh -o StrictHostKeyChecking=no -i $keyPair -o ProxyCommand="ssh -W %h:%p -i $keyPair [email protected]$bastionIP 22" [email protected]$IP "$cmd")
x=$?
echo "SSH status is : $x"
if [ $x -eq 0 ];then
echo "Success"
else
echo "Failure"
exit 1
fi
}
rSSH
exit 0
Als ich die execute über Skript als Hintergrund-Job mit einem ungültigen $ bastionIP (Test-Fehler-Szenario), ergibt es mit einem Exit-Code von 0 (anstelle von 1) und die einzige Information, die ich in den Protokollen sehe, ist das erste echo "Running ssh-Befehl" und es Verlässt das Skript einfach.
Kann jemand darauf hinweisen, was ich falsch mache oder eine bessere Möglichkeit, den Exit-Status des Remote-SSH-Befehls zu erfassen. Schätzen Sie jede Hilfe.
Verwenden Sie 'set -e'? – chepner
ahh ja. Das verursacht wahrscheinlich das Problem. @chepner Danke, dass du das unterstrichen hast. Total verpasst, dass – outtoexplore