Tipps und Trick -Beispiele für nützliche Bash -Bash -Befehlszeilen - Teil 3

Tipps und Trick -Beispiele für nützliche Bash -Bash -Befehlszeilen - Teil 3

Bash ist eine abwechslungsreiche Shell -Schnittstelle mit vielen Programmieroptionen und eine reichhaltige Unterrichtssprache. Es ist einfach, Bash -Funktionen und Dynamik zu verpassen, daher führt diese Serie in einer Reihe von Tipps, Tricks, Beispielen und Gotchas ein. Für den ersten beiden Artikel in dieser Serie finden Sie in unserem Artikel Nützliche Bash -Befehlszeilenzeilen und Tricks Beispiele Teil 2 und nützliche Bash -Befehlszeilen -Tipps und -Tipps und Tricks Beispiele Teil 3.

In dieser Tutorial -Serie lernen Sie:

  • Nützliche Bash -Befehlszeilen -Tipps, Tricks und Methoden
  • So interagieren Sie mit der Bash -Befehlszeile fortschrittlich
  • So schärfen Sie Ihre Bash -Fähigkeiten insgesamt und werden zu einem kompetenteren Bash -Benutzer
Tipps und Trick -Beispiele für nützliche Bash -Bash -Befehlszeilen - Teil 3

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: korrekt nach der Existenz von Dateien und Verzeichnissen überprüft

Wir können auf das Vorhandensein eines Verzeichnisses checken, indem wir die verwenden -D (Hat ein Verzeichnis mit dem angegebenen Namen existiert) Klausel in einer Wenn Stellungnahme:

$ MypathoCheckforexistence = "$ pwd" $ echo "$ mypatoCheckForexistence"/home/roel/iamhappy $ if [-d $ mypathoCheckFexistence]; dann existiert Echo "!"; fi existiert! 


Es ist jedoch ebenso einfach, in einigen Bereichen der Bash einen schwer zu entschlossenen Fehler zu machen. Lassen Sie uns beispielsweise nachdenken (und sehen Sie, ob Sie den Fehler finden können)

$ MypathoCheckforexistance = "/macht nichtReallyexist" $ if [-d $ mypathoCheckForexistence]; dann existiert Echo "!"; fi existiert! $ ls /doNotreallyexist ls: Kann nicht zugreifen ' /doNotReallyexist': Keine solche Datei oder Verzeichnis 

Warum das Wenn Überprüfen Sie die Schlussfolgerung, dass die /macht nicht Verzeichnis existiert? Kannst du den Fehler sehen??

Das Problem hier ist, dass im Variablennamen ein Tippfehler eingeschaltet ist. Existenz vs EXISTENZ

Vielleicht ein bisschen frech, aber in aller Ernsthaftigkeit sollte dies auch sehr leicht zu gotcha eingehen:

$ wenn [-d]; dann existiert Echo "!"; fi existiert! 

Und bedeutender;

$ Var1 = "; if [-d $ var1]; dann existiert echo"!"; fi existiert! 

Wenn Sie also die initialisierende Verzeichnisname -Variable vergessen haben, die Sie anschließend überprüfen, oder der Variablenname wird falsch geschrieben, dann wird das Ergebnis sein, dass die Bash die Bash ist Wenn Die Erklärung gibt zurück, dass das Verzeichnis existiert! Es gibt keine weitere Erwähnung dieser interessanten Ausnahme im Handbuch (Ref (Ref " Mann Bash) was das nur verdeutlicht -D Ist Wahr, wenn die Datei existiert und ein Verzeichnis ist..

Wie können wir das beheben??

Beispiel 2: Ein besserer Weg, um die Existenz von Dateien und Verzeichnissen zu überprüfen

Das Fix ist einfach; Wir können unsere Variable mit doppelten Zitaten zitieren ("), was dann das macht Wenn Nicht standardmäßig das Ergebnis von immer zu True. Als interessante Randnotiz für weitere Gedanken und vielleicht Ihr sachkundiger Kommentar unten muss man sich fragen, warum es so implementiert wurde und was die zugrunde liegende Implementierung im Always-True ist.

$ Var1 = "; if [-d" $ var1 "]; dann existiert Echo"!"; fi $ 


Eine einfache und elegante Lösung. Anstatt der Wenn Aussage jetzt analysiert als Wenn [-d] Was, wie wir gesehen haben, immer auf wahr bewertet, jetzt wird es als analysiert (vorausgesetzt, das Var1 ist mindestens leer) wenn [-d ""] das führt zu falsch und damit die Dann Klausel wird nicht ausgeführt.

Beispiel 3: Wollte schon immer den Inhalt von a extrahieren .DEB -Datei?

Manchmal bricht etwas auf einem System aus, und wir möchten möglicherweise eine einzige Datei von a erhalten .Deb Paket. .Deb Pakete (Installationspakete im Debian-Stil, die auch von Ubuntu und Mint verwendet werden), können online leicht gefunden werden, aber es ist nicht immer so selbstverständlich, wie Dateien daraus extrahieren können. Um dies zu tun, können wir:

AR X SOLE_DEB_FILE.DEB TAR -XF -Daten.Teer.xz 

ar ist ein Werkzeug zu Erstellen, modifizieren und extrahieren Sie aus den Archiven, als Handbuch (Mann ar) erklärt. Diese Befehle liefern die Dateien innerhalb der .Deb Paket. Jede .Deb Die Datei hat zwei Archivdateien, nämlich Kontrolle.Teer.xz Und Daten.Teer.xz (ein gemeinsamer Standard) und - wie Sie aus dem Beispiel sehen können - es ist das Daten.Teer.xz Archiv, das erweitert werden muss, um die Dateien innerhalb der zu sehen .Deb Paket.

Abschluss

In diesem Artikel haben wir Möglichkeiten untersucht, um die Existenz von Dateien und Verzeichnissen korrekt zu überprüfen, indem wir ordnungsgemäß angegeben haben, und veranschaulicht, wie leicht es in diesem Bereich Fehler machen, Fehler zu machen. Testen Sie immer Ihre Skripte und probieren Sie eine Vielzahl verschiedener Situationen und Szenarien aus. Wir haben uns auch untersucht, wie wir Inhalte von a extrahieren können .Deb Datei mit dem ar Und Teer Befehle. Genießen Sie wie immer die Bash -Codierung und hinterlassen Sie uns unten einen Kommentar mit Ihren Erkenntnissen!

  • Tipps und Trick -Beispiele für nützliche Bash -Bash -Befehlszeilen - Teil 1
  • Tipps und Trick -Beispiele für nützliche Bash -Bash -Befehlszeilen - Teil 2
  • Tipps und Trick -Beispiele für nützliche Bash -Bash -Befehlszeilen - Teil 3
  • Tipps und Trick -Beispiele für nützliche Bash -Bash -Befehlszeilen - Teil 4
  • Tipps und Trick -Beispiele für nützliche Bash -Bash -Befehlszeilen - Teil 5

Verwandte Linux -Tutorials:

  • Eine Einführung in Linux -Automatisierung, Tools und Techniken
  • Mastering -Bash -Skriptschleifen beherrschen
  • Tipps und Trick -Beispiele für nützliche Bash -Bash -Befehlszeilen - Teil 1
  • Tipps und Trick -Beispiele für nützliche Bash -Bash -Befehlszeilen - Teil 2
  • Tipps und Trick -Beispiele für nützliche Bash -Bash -Befehlszeilen - Teil 4
  • Dinge zu installieren auf Ubuntu 20.04
  • Ubuntu 20.04 Tricks und Dinge, die Sie vielleicht nicht wissen
  • Verschachtelte Schleifen in Bash -Skripten
  • Ubuntu 20.04 Leitfaden
  • Dinge zu tun nach der Installation Ubuntu 20.04 fokale Fossa Linux