
wenn wir wissen wollen, was die Standardausgabe des SSH ist, dann tun wir
ssh $linux_server "cat /proc/uptime"
[[ $? -eq 0 ]] && ssh is ok
aber wie erfährt man im folgenden Fall die SSH-Standardausgabe?
UPTIME=` ssh $linux_server "cat /proc/uptime" `
Antwort1
Die Standardmethode hierfür ist bei den meisten Shells (und daher die portabelste) die Verwendung von Backquote (`). Da das Argument, das Sie für SSH haben, nicht in Anführungszeichen gesetzt werden muss, das Ergebnis aber wahrscheinlich wäre, würden Sie Folgendes schreiben:
UPTIME="`ssh $linux_server cat /proc/uptime`"
oder Sie können spezifisch für Bash sein (und einige andere Shells, aber nicht so universell wie Backquote), indem Sie $() wie folgt verwenden:
UPTIME="$(ssh $linux_server cat /proc/uptime$)"
Beachten Sie, dass Backquotes nicht verschachtelt werden können, da sie dasselbe zur Abgrenzung des Befehls verwenden. Das ist einer der Vorteile der Bash-Konstruktion. Außerdem ist für eine etwas effizientere Ausführung kein Forking einer Sub-Shell erforderlich.
Weitere Einzelheiten finden Sie auf der Manpage von Bash.