Linux-Shell-Skript: Save-Befehl Ausgänge in variable/Datei?
Möchte ich eine Ausgabe von einem Befehl, aber ich weiß nicht, wie ich speichern kann die Ausgabe in eine variable oder Datei.
Das Skript eine Verbindung mit einem angegebenen server über telnet und führt verschiedene Befehle. Ein Befehl ist ein Bedarf für weitere Befehle. Naja... ich muss speichern Sie diese Informationen von der Ausgabe des Befehls.
Mein code:
#!/bin/bash
(
echo open server portnumber
sleep 2s
echo "login username password"
sleep 1s
echo "use sid=1"
CLIENT_LIST=$(echo "clientlist")
sleep 1s
echo "clientupdate client_nickname=Administrator"
for client_id in $(echo $CLIENT_LIST | grep -Eo "clid=[0-9]+" | grep -Eo "[0-9]+"); do
echo "clientpoke clid=$client_id msg=How\sare\syou!"
sleep 1s
done
sleep 1s
echo "logout"
echo "quit"
) | telnet
Ich wollen speichern Sie die Ausgabe von dem Befehl "clientlist" in eine variable oder Datei. Eine variable wäre die beste Lösung. Aber eigentlich ist die variable speichert 'clientlist" und nicht die Ausgabe des Befehls. 🙁
Ich hoffe jemand kann mir helfen. Vielen Dank im Voraus! 🙂
Wenn Sie es testen wollen: Es ist für TeamSpeak 3 server.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn zu dieser Frage, die Sie bedeuten, "ich will laufen die
clientlist
Befehl auf dem remote-Computer, und nehmen Sie dann seine Ausgabe an eine variable auf der lokalen Maschine", dann kann man das nicht mit sowas wie dein Skript. (Beachten Sie, dass Sie ein Skript nur die Rohre Eingang in dietelnet
Befehl;telnet
's Ausgabe nicht überall erfasst.)Müssen Sie ein Skript schreiben, mit so etwas wie
erwarten
, oder einer seiner arbeiten-die Doppelgänger in einer anderen Sprache wie Perl oder Python.Ausführen den Befehl "clientlist" und speichern Sie die Ausgabe in eine variable:
In der bash oder sh, die
$(...)
syntax bedeutet "diesen Befehl ausführen und zurückkehren, was auch immer Ausgabe, die es produziert."