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 -labfä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/bashbeginnen.Das Skript soll die Ausgabe des Befehls
ls -lerfassen 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 -lliefert detaillierte Informationen. Möglicherweise müssen Sie Werkzeuge wieawkodercutverwenden, 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.



