Wenn Sie einen Befehl ausführen, erzeugt er eine Art Ausgabe:entweder soll das Ergebnis eines Programms erzeugt werden oder Status-/Fehlermeldungen der Programmausführungsdetails. Manchmal möchten Sie vielleicht die Ausgabe eines Befehls in einer Variablen speichern, um sie in einer späteren Operation zu verwenden.
In diesem Beitrag werden wir die verschiedenen Möglichkeiten besprechen, die Ausgabe eines Shell-Befehls einer Variablen zuzuweisen, was besonders für Shell-Scripting-Zwecke nützlich ist.
Um die Ausgabe eines Befehls in einer Variablen zu speichern, können Sie die Shell-Befehlsersetzungsfunktion in den folgenden Formen verwenden:
variable_name=$(command) variable_name=$(command [option ...] arg1 arg2 ...) OR variable_name='command' variable_name='command [option ...] arg1 arg2 ...'
Nachfolgend finden Sie einige Beispiele für die Verwendung der Befehlsersetzung.
In diesem ersten Beispiel speichern wir den Wert von who
(der anzeigt, wer am System angemeldet ist) in der Variablen CURRENT_USERS
Benutzer:
$ CURRENT_USERS=$(who)
Dann können wir die Variable in einem Satz verwenden, der mit dem echo-Befehl wie folgt angezeigt wird:
$ echo -e "The following users are logged on the system:\n\n $CURRENT_USERS"
Im obigen Befehl:das Flag -e
bedeutet, alle Escape-Sequenzen zu interpretieren (wie \n
für Zeilenumbruch) verwendet. Um Zeit- und Speicherverschwendung zu vermeiden, führen Sie einfach die Befehlsersetzung innerhalb des echo-Befehls wie folgt durch:
$ echo -e "The following users are logged on the system:\n\n $(who)"
Als nächstes, um das Konzept unter Verwendung der zweiten Form zu demonstrieren; Wir können die Gesamtzahl der Dateien im aktuellen Arbeitsverzeichnis in einer Variablen namens FILES
speichern und Echo es später wie folgt:
$ FILES=`sudo find . -type f -print | wc -l` $ echo "There are $FILES in the current working directory."
In diesem Artikel haben wir die Methoden zum Zuweisen der Ausgabe eines Shell-Befehls zu einer Variablen erklärt. Sie können Ihre Gedanken zu diesem Beitrag über den Feedback-Bereich unten hinzufügen.