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.

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).

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.

✨ Lösung prüfen und üben