Linux -Unterschalen für Anfänger mit Beispielen

Linux -Unterschalen für Anfänger mit Beispielen

Wenn Sie die Verwendung von Unterschalen in Bash verwenden. Zum Beispiel, wenn Sie eine Textzeichenfolge direkt in einem ändern möchten Echo Anweisung, dann kann dies leicht mit Unterschalen erfolgen.

In diesem Tutorial lernen Sie:

  • So verwenden Sie die Verwendung von Unterschalen in Bash verwenden
  • So verwenden Sie Unterschalen, um kontextsensitive Informationen zu erhalten
  • Basis -Bash -Unterschalen -Nutzungsbeispiele
Linux -Unterschalen für Anfänger mit Beispielen

Softwareanforderungen und Konventionen verwendet

Softwareanforderungen und Linux -Befehlszeilenkonventionen
Kategorie Anforderungen, Konventionen oder Softwareversion verwendet
System Linux-Verteilungsunabhängige
Software BASH -Befehlszeile, Linux -basiertes System
Andere Jedes Dienstprogramm, das standardmäßig nicht in der Bash -Shell enthalten ist sudo apt-Get Installieren Sie den Dienstprogramm (oder yum install Für Redhat -basierte Systeme)
Konventionen # - Erfordert, dass Linux -Commands mit Root -Berechtigungen entweder direkt als Stammbenutzer oder mithilfe von verwendet werden sudo Befehl
$-erfordert, dass Linux-Commands als regulärer nicht privilegierter Benutzer ausgeführt werden

Beispiel 1: Zwei verschiedene Syntaxe

Bash ermöglicht zwei verschiedene Subschalensyntaxen, nämlich $ () und Back-Tick-umliegende Aussagen. Schauen wir uns einige einfache Beispiele an, um zu beginnen:

$ echo '$ (echo' a ')' $ (echo a) $ echo "$ (echo 'a')" a $ echo "a $ (echo 'b' b ') c" abc $ echo "a'echo' b "C" ABC 


Im ersten Befehl haben wir als Beispiel verwendet '' Einzelzitate. Dies führte zu unserem Subshell -Befehl innerhalb der einzelnen Zitate, um als wörtlicher Text anstelle eines Befehls zu interpretieren. Dies ist Standard -Bash: '' zeigt wörtlich an, " Gibt an, dass die Zeichenfolge für Unterschalen und Variablen analysiert wird.

Im zweiten Befehl tauschen wir die '' Zu " und so wird die Zeichenfolge für tatsächliche Befehle und Variablen analysiert. Das Ergebnis ist, dass dank unserer Subshell -Syntax eine Unterschale gestartet wird ($ ()) und der Befehl in der Unterschale (echo 'a') wird wörtlich ausgeführt und somit eine A wird produziert, was damals ist eingefügt in der übergreifenden / oberen Ebene Echo. Der Befehl in dieser Phase kann als gelesen werden echo "a" und so ist die Ausgabe A.

Im dritten Befehl erweitern wir dies weiter, um es klarer zu machen, wie Unterschalen im Kontext funktionieren. Wir wiederholen den Brief B In der Unterschale, und dies wird links und rechts durch die Buchstaben verbunden A Und C Ergeben Sie den Gesamtleistung ABC In ähnlicher Weise wie der zweite Befehl.

Im vierten und letzten Befehl veranschaulichen wir die alternative Bash-Subshell-Syntax der Verwendung von Back-Ticks anstelle von $ (). Es ist wichtig zu wissen $ () ist die bevorzugte Syntax, und in einigen entfernten Fällen kann die Back-Tick-basierte Syntax einige Parsing-Fehler ergeben, bei denen die $ () nicht. Ich würde Sie daher dringend ermutigen, das immer zu verwenden $ () Syntax für Unterschalen, und dies ist auch das, was wir in den folgenden Beispielen verwenden werden.

Beispiel 2: etwas komplexer

$ touch a $ echo "-$ (ls [a-z])" -a $ echo "-=-|| $ (ls [a-z] | xargs ls -l) ||-=-"-=-|| -rw -RW-R-- 1 Roel Roel 0 Sep 5 09:26 A ||-=- 

Hier erstellen wir zuerst eine leere Datei mit der Berühren Sie a Befehl. Anschließend verwenden wir Echo etwas ausgeben, das unsere Unterschale ausgibt $ (ls [a-z]) wird erzeugen. Sicher, wir können das ausführen ls direkt und mehr oder weniger das gleiche Ergebnis ergeben, aber beachten Sie, wie wir hinzufügen - zum Ausgang als Präfix.

Im endgültigen Befehl setzen wir einige Zeichen vorne und am Ende der Echo Befehl, mit dem die Ausgabe etwas schöner aussieht. Wir verwenden eine Unterschale, um zuerst die zu finden A Datei, die wir zuvor erstellt haben (LS [A-Z]) und dann - noch im Unterschalen - die Ergebnisse dieses Befehls bestehen (was nur wäre A buchstäblich - ich.e. die Datei, die wir im ersten Befehl erstellt haben) zu dem ls -l mit dem Rohr (|) und das Xargs Befehl. Weitere Informationen zu XARGs finden Sie in unseren Artikeln XARGs für Anfänger mit Beispielen und Multi -Thread -Xargs mit Beispielen.

Beispiel 3: Doppelte Zitate in Unterschalen und Unterschalen!

echo "$ (echo" $ (echo "es funktioniert") "| sed 's | it | it sicherlich |') Es funktioniert sicherlich 


Cool, nein? Hier sehen wir, dass Doppelzitate in der Unterschale verwendet werden können, ohne Parsing -Fehler zu generieren. Wir sehen auch, wie eine Unterschale in einer anderen Unterschale verschachtelt werden kann. Können Sie die Syntax analysieren?? Der einfachste Weg ist es, „in der Mitte oder in den Kern aller Unterschalen“ zu beginnen, was in diesem Fall das einfache wäre echo "es funktioniert".

Dieser Befehl wird ausgegeben Es klappt Infolge des Unterschalenaufrufs $ (echo "es funktioniert"). Bild Es klappt anstelle der Unterschale, ich.e.

echo "$ (echo" es funktioniert "| sed 's | it | es sicher |')" es funktioniert sicherlich 

Das sieht schon einfacher aus. Als nächstes ist es hilfreich zu wissen, dass die sed Der Befehl wird einen Ersatz ausführen (dank der S Befehl kurz vor dem | Befehlsabscheider) des Textes Es Zu Es ist sicher. Sie können die lesen sed Befehl as Ersetzen Sie __it__ durch __it sicher__. Die Ausgabe der Unterschale wird somit seines funktioniert sicher ', ich.e.

echo "es funktioniert sicher", funktioniert es sicherlich 

Abschluss

In diesem Artikel haben wir diese Unterschalen gesehen sicher arbeiten (Wortspiel beabsichtigt) und dass sie aufgrund ihrer Fähigkeit, Inline und im Kontext des übergeordneten Befehls eingefügt zu werden. Unterschalen sind sehr mächtig und wenn Sie sie verwenden, wird es wahrscheinlich kein Stopp geben. Sehr bald werden Sie so etwas schreiben wie:

$ Var = "Auf Wiedersehen"; echo "Danke $ (echo" $ var "| sed 's |^| und |')" | sed 's | k | k du |' 

Dieser ist für Sie, mit dem Sie versuchen können, mit zu spielen! Danke und tschüss

Verwandte Linux -Tutorials:

  • So verwenden Sie Bash -Unterschalen im Inneren, wenn Anweisungen
  • Erweiterte Linux -Unterschalen mit Beispielen
  • Dinge zu installieren auf Ubuntu 20.04
  • Dinge zu tun nach der Installation Ubuntu 20.04 fokale Fossa Linux
  • Eine Einführung in Linux -Automatisierung, Tools und Techniken
  • Multi-Thread-Bash-Skript- und Prozessmanagement bei der…
  • Mastering -Bash -Skriptschleifen beherrschen
  • Grundlegende Linux -Befehle
  • Linux -Befehle: Top 20 wichtigste Befehle, die Sie benötigen, um…
  • Dinge zu tun nach der Installation Ubuntu 22.04 Jammy Quallen…