Shell-Skripte erstellen: Verarbeitung der Befehlsausgabe

Red Hat Enterprise LinuxRed Hat Enterprise LinuxBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

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 Fähigkeit zur Automatisierung von Aufgaben und zur Extraktion spezifischer Informationen aus Kommandozeilen-Tools. Sie lernen, wie Sie die Befehlsausgabe erfassen, die Daten manipulieren und die verarbeiteten Informationen innerhalb Ihres Skripts verwenden. Diese Herausforderung hilft Ihnen, praktische Skripting-Fähigkeiten zu entwickeln, die für die Systemadministration unerlässlich sind.

Erstellen eines Shell-Skripts zur Verarbeitung der Befehlsausgabe

In diesem Schritt erstellen Sie ein Shell-Skript, das die Ausgabe des Befehls ls -l erfasst, spezifische Informationen (Dateigröße und Dateiname) extrahiert und formatiert anzeigt. Diese Übung demonstriert, wie man die Befehlsausgabe parst, was eine gängige Aufgabe beim Shell-Skripting ist.

Aufgaben

  • Erstellen Sie ein Shell-Skript, das die Ausgabe des Befehls ls -l erfasst.
  • Extrahieren Sie die Dateigröße und den Dateinamen aus der ls -l-Ausgabe für jede Datei.
  • Zeigen Sie die extrahierten Informationen in einer spezifisch formatierten Ausgabe an.

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 sollte die Ausgabe des Befehls ls -l erfassen und in einer Variable speichern.
  • Extrahieren Sie für jede Datei, die in der ls -l-Ausgabe aufgeführt ist, deren Größe und Namen.
  • Zeigen Sie die extrahierte Dateigröße und den Dateinamen im folgenden Format an:
    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 haben ein Verzeichnis mit Dateien. Wenn Sie Ihr Skript ausführen, sollte die Ausgabe in 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 Tools wie awk oder cut verwenden, um bestimmte Spalten (Felder) aus jeder Zeile seiner Ausgabe zu extrahieren.
  • Denken Sie daran, dass die erste Zeile der ls -l-Ausgabe oft mit "total" beginnt und beim Verarbeiten einzelner Dateien übersprungen werden sollte.
  • Stellen Sie sicher, dass Ihr Skript Ausführungsberechtigungen hat (chmod +x).
✨ Lösung prüfen und üben

Zusammenfassung

In dieser Herausforderung haben Sie gelernt, wie man ein Shell-Skript zur Verarbeitung der Ausgabe eines Befehls erstellt. Insbesondere haben Sie die Ausgabe von ls -l erfasst, Dateigrößen und -namen extrahiert und diese formatiert angezeigt. Diese Übung demonstrierte wichtige Shell-Skripting-Konzepte wie Befehlssubstitution (command substitution), while read-Schleifen und Textverarbeitung mit awk. Diese Fähigkeiten sind entscheidend für die Automatisierung von Aufgaben, das Parsen von Protokolldateien und die Extraktion spezifischer Daten aus verschiedenen Kommandozeilen-Tools, was häufige Anforderungen für die RHCSA-Prüfung und die tägliche Systemadministration sind.