Ich möchte Shell verwenden, um ein Skript auf einem Remote-Server aufzurufen. Ich möchte die Ausgabe dieses Skripts (seine Protokollmeldungen) und den zurückgegebenen Exit-Code erfassen.
Wenn ich das mache:
ssh user@server /usr/local/scripts/test_ping.sh
echo "$?"
Ich erhalte den Exit-Code, kann aber die Remote-Logging-Meldungen nicht erfassen.
Wenn ich das mache:
local RESULTS=$(ssh user@server /usr/local/scripts/test_ping.sh)
echo "$?"
LOG "${RESULTS}";
Ich kann meine Ausgabe mit meiner LOG-Funktion protokollieren, kann aber anscheinend keinen korrekten Exit-Code erhalten. Ich gehe davon aus, dass der erhaltene Code der Code aus der varianble-Zuweisung ist.
Ich möchte meine LOG-Funktion weiterhin verwenden, um alle Ausgaben beim Formatieren zu erfassen und an eine Datei, Syslog und den Bildschirm zu senden.
Wie kann ich Ergebnisse in einer Variablen erfassen UND den richtigen Beendigungscode aus dem Remote-Skript abrufen?