Shell-Skripte zur Verarbeitung von Befehlsausgaben erstellen

Red Hat Enterprise LinuxBeginner
Jetzt üben

Einführung

In dieser Herausforderung lernen Sie, wie Sie ein einfaches Shell-Skript erstellen, das die Ausgabe von Shell-Befehlen verarbeitet. Dies ist eine grundlegende Fertigkeit, um Aufgaben zu automatisieren und gezielt Informationen aus Kommandozeilen-Werkzeugen zu extrahieren. Sie werden lernen, wie man Befehlsausgaben erfasst, Daten manipuliert und die verarbeiteten Informationen innerhalb Ihres Skripts weiterverwendet. Diese Übung hilft Ihnen dabei, praktische Scripting-Kenntnisse zu entwickeln, die für die Systemadministration unerlässlich sind.

Dies ist eine Challenge (Herausforderung). Im Gegensatz zu einem geführten Lab müssen Sie versuchen, die Aufgabe eigenständig zu lösen, anstatt einer Schritt-für-Schritt-Anleitung zu folgen. Challenges sind in der Regel etwas anspruchsvoller. Wenn Sie nicht weiterkommen, können Sie die Lösung einsehen oder sich mit Labby austauschen. Historische Daten zeigen, dass dies eine Challenge für Anfänger mit einer Erfolgsquote von 89% ist. Sie hat eine positive Bewertungsrate von 98% von Lernenden erhalten.

Erstellen eines Shell-Skripts zur Verarbeitung von Befehlsausgaben

In diesem Schritt erstellen Sie ein Shell-Skript, das die Ausgabe des Befehls ls -l erfasst, spezifische Informationen (Dateigröße und Dateiname) extrahiert und diese formatiert anzeigt. Diese Übung demonstriert das Parsen von Befehlsausgaben, eine der häufigsten Aufgaben im Shell-Scripting.

Aufgaben

  • Erstellen Sie ein Shell-Skript, das die Ausgabe des Befehls ls -l abfängt.
  • Extrahieren Sie für jede Datei die Dateigröße und den Dateinamen aus der ls -l-Ausgabe.
  • Geben Sie die extrahierten Informationen in einem spezifisch formatierten Format aus.

Anforderungen

  • Erstellen Sie das Skript im Verzeichnis ~/project/scripts.

  • Benennen Sie das Skript process_ls.sh.

  • Das Skript muss mit dem Shebang #!/bin/bash beginnen.

  • Das Skript soll die Ausgabe des Befehls ls -l erfassen und in einer Variablen speichern.

  • Extrahieren Sie für jede in der ls -l-Ausgabe aufgeführte Datei deren Größe und Namen.

  • Geben Sie die extrahierte Dateigröße und den Dateinamen im folgenden Format aus:

    File size: <file_size> bytes
    File name: <file_name>

    Ersetzen Sie <file_size> durch die tatsächliche Dateigröße in Bytes und <file_name> durch den tatsächlichen Dateinamen.

Beispiel

Angenommen, Sie befinden sich in einem Verzeichnis mit Dateien. Wenn Sie Ihr Skript ausführen, sollte die Ausgabe etwa so aussehen:

[labex@host ~]$ cd ~/project/scripts
[labex@host scripts]$ nano process_ls.sh
[labex@host scripts]$ chmod +x process_ls.sh
[labex@host scripts]$ ./process_ls.sh
File size: 1300 bytes
File name: process_ls.sh
[labex@host scripts]$

Die genauen Dateigrößen und Namen hängen vom Inhalt Ihres aktuellen Verzeichnisses ab.

Hinweise

  • Sie können die Befehlssubstitution (z. B. variable=$(command)) verwenden, um die Ausgabe eines Befehls zu erfassen.
  • Um jede Zeile der Befehlsausgabe zu verarbeiten, können Sie eine while read-Schleife verwenden.
  • Der Befehl ls -l liefert detaillierte Informationen. Möglicherweise müssen Sie Werkzeuge wie awk oder cut verwenden, um bestimmte Spalten (Felder) aus jeder Zeile der Ausgabe zu extrahieren.
  • Beachten Sie, dass die erste Zeile der ls -l-Ausgabe oft mit "total" beginnt und beim Verarbeiten der einzelnen Dateien übersprungen werden sollte.
  • Stellen Sie sicher, dass Ihr Skript über Ausführungsrechte verfügt (chmod +x).
✨ Lösung prüfen und üben

Zusammenfassung

In dieser Herausforderung haben Sie gelernt, wie man ein Shell-Skript erstellt, um die Ausgabe eines Befehls zu verarbeiten. Konkret haben Sie die Ausgabe von ls -l erfasst, Dateigrößen und Namen extrahiert und diese formatiert ausgegeben. Diese Übung hat wichtige Konzepte des Shell-Scripting wie Befehlssubstitution, while read-Schleifen und Textverarbeitung mit awk vermittelt. Diese Fähigkeiten sind entscheidend für die Automatisierung von Aufgaben, das Parsen von Logdateien und das Extrahieren spezifischer Daten aus verschiedenen Kommandozeilen-Tools – typische Anforderungen für die RHCSA-Prüfung und die tägliche Systemadministration.