So erhalten Sie die Standardausgabe vom Befehl in der Variablen

So erhalten Sie die Standardausgabe vom Befehl in der Variablen

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.

verwandte Informationen