Best Practices und Tipps zum Schreiben von Shell -Skripten als Pro
- 3230
- 98
- Aileen Dylus
Shell Scripting ist ein leistungsstarkes Werkzeug für DevOps Automation. Sie können sich wiederholte Aufgaben automatisieren, Ihre Infrastruktur verwalten und konfigurieren und Ihre Bereitstellungsprozesse optimieren. Das Schreiben von effektiven Shell -Skripten erfordert jedoch nach Best Practices und Verwendung bestimmter Techniken, um Ihren Code effizient, modular und wartbar zu machen.
In diesem Artikel werden wir einige der Best Practices und Tipps für Shell -Scripting diskutieren, die Ihnen bei Ihrer DevOps -Automatisierung helfen können.
1. Verwenden Sie sinnvolle Variablennamen
Die Verwendung sinnvoller Variablennamen kann dazu beitragen, Ihren Code lesbarer und verständlicher zu machen. Es erleichtert es anderen auch, Ihren Code zu pflegen, wenn sie ihn in Zukunft ändern müssen.
Hier ist ein Beispiel für die Verwendung sinnvoller Variablennamen in einem Shell -Skript:
#!/bin/bash # Setzen Sie das aktuelle Datum current_date = $ (Datum +%y-%M-%d) # Drucken Sie das aktuelle Datum echo "Das aktuelle Datum ist: $ current_date"1234567 | #!/bin/bash # Setzen Sie die aktuelle datecurrent_date = $ (Datum +%y-%M-%d) # Drucken Sie das aktuelle Datum des Datums "Das aktuelle Datum ist: $ current_date" |
In diesem Beispiel verwenden wir die Variable "aktuelles Datum" Um das aktuelle Datum zu speichern und dann mit Echo auszudrucken. Dies macht deutlich, was die Variable speichert und wie sie im Skript verwendet wird.
2. Verwenden Sie Fehlerprüfung
Die Fehlerprüfung ist ein wichtiger Bestandteil des Shell -Skripts, insbesondere für DevOps Automation. Es hilft Ihnen, Fehler frühzeitig zu fangen und zu verhindern, dass sie Probleme in der ganzen Linie verursachen.
Hier ist ein Beispiel für die Verwendung der Fehlerprüfung in einem Shell -Skript:
#!/bin/bash # prüfen, ob eine Datei vorhanden ist, wenn [ ! -f/path/to/file]; dann echo "Fehler: Datei existiert nicht."Beenden Sie 1 fi # Fahren Sie mit dem Rest des Skripts fort123456789 | #!/bin/bash # prüfen, ob eine Datei existif [[ ! -f/path/to/file]; dann echo "Fehler: Datei existiert nicht."Beenden Sie 1fi # Fahren Sie mit dem Rest des Skripts fort |
In diesem Beispiel verwenden wir die IF -Anweisung, um zu überprüfen, ob eine Datei vorliegt. Wenn die Datei nicht vorhanden ist, drucken wir eine Fehlermeldung und beenden das Skript mit einem Statuscode ungleich Null an. Dadurch können wir den Fehler frühzeitig aufnehmen und verhindern, dass das Skript fortgesetzt wird und möglicherweise mehr Probleme verursacht.
3. Verwenden Sie die Eindrücke
Die Eindrücke ist ein wichtiger Bestandteil des lesbaren und verständlichen Code. Es kann Ihnen helfen, die Struktur Ihres Codes auf einen Blick zu sehen und es einfacher zu befolgen.
Hier ist ein Beispiel für die Verwendung von Einrückungen in einem Shell -Skript:
#!/bin/bash # schleifen Sie eine Liste von Dateien für Datei in/path/to/Dateien/*; Überprüfen Sie #, ob die Datei ein Verzeichnis ist, wenn [-d "$ file"]; Dann # Drucken12345678910111213 | #!/bin/bash # schleifen Sie eine Liste von Dateien für Datei in/path/to/Dateien/*; Überprüfen Sie #, ob die Datei ein Verzeichnis ist, wenn [-d "$ file"]; Dann # Drucken Sie den Verzeichnisnamen echo "Verzeichnis: $ file" else # drucken Sie den Dateinamen echo "Datei: $ Datei" Fidone |
In diesem Beispiel verwenden wir Einrückung, um die Struktur des Skripts anzuzeigen. Die für die Schleife ist eine Ebene eingerückt, und die IF -Aussagen sind eine andere Ebene eingerichtet. Dies erleichtert leicht zu erkennen, welche Codeblöcke in den anderen Blöcken verschachtelt sind.
4. Verwenden Sie die Befehlszeilenoptionen
Befehlszeilenoptionen sind ein leistungsstarkes Werkzeug für Shell Scripting. Sie ermöglichen es Ihnen, Argumente an Ihr Skript weiterzugeben und sein Verhalten anhand dieser Argumente anzupassen.
Hier ist ein Beispiel für die Verwendung von Befehlszeilenoptionen in einem Shell-Skript:
#!/bin/bash # Parse-Befehlszeilenoptionen während GetOpts ": f: d:" opt; do case $ opt in f) # Setzen Sie die Eingabedatei input_file = $ optarg ;; d) # Setzen Sie das Ausgabesverzeichnis output_dir = $ optarg ;; \?) Echo "Ungültige Option: -$ optarg"> & 2 Exit 1 ;; :) Echo "Option -$ optarg erfordert ein Argument."> & 2 Exit 1; ESAC DURTED # Machen Sie etwas mit der Eingabedatei und dem Ausgabeverzeichnis12345678910111213141516171819202122232425 | #!/bin/bash # Parse-Befehlszeilenoptionswhile getopts ": f: d:" opt; do case $ opt in f) # Setzen Sie die Eingabedatei input_file = $ optarg ;; d) # Setzen Sie das Ausgabesverzeichnis output_dir = $ optarg ;; \?) Echo "Ungültige Option: -$ optarg"> & 2 Exit 1 ;; :) Echo "Option -$ optarg erfordert ein Argument."> & 2 Exit 1; Esacdone # Machen Sie etwas mit der Eingabedatei und dem Ausgabeverzeichnis |
5. Vermeiden Sie Hardcoding
Vermeiden Sie beim Erstellen von Shell-Skripten zur Automatisierung hartcodierende Werte wie IP-Adressen, Dateipfade oder andere systemspezifische Details. Verwenden Sie stattdessen Variablen oder Konfigurationsdateien, um diese Informationen zu speichern und zu referenzieren. Dadurch wird das Skript in Zukunft tragbarer und leichter zu warten.
Zum Beispiel, anstatt einen Dateipfad zu starten, wie "/Var/log/messages", Verwenden Sie eine Variable wie $ Log_path:
#!/bin/bash log_path = "/var/log/message" cat $ log_path12345 | #!/bin/bash log_path = "/var/log/message" cat $ log_path |
6. Verwenden Sie bedingte Aussagen
Bedingte Aussagen sind bei Shell -Skripting nützlich, um Entscheidungen auf der Grundlage bestimmter Bedingungen zu treffen. Die häufigste bedingte Aussage in Bash ist die IF -Aussage.
#!/bin/bash if [-e/tmp/Datei.txt] dann echo "Datei existiert" else echo "-Datei existiert nicht" fi12345678 | #!/bin/bash if [-e/tmp/Datei.txt] dann echo "Datei existiert" else echo "-Datei existiert nicht" fi |
Dieses Skript überprüft, ob die Datei “/TMP/Datei.txt" existiert. Wenn dies der Fall ist, druckt es "Datei existiert", Und wenn dies nicht der Fall ist, druckt es "Die Datei existiert nicht".
7. Funktionen verwenden
Funktionen sind Codeblöcke, die mehrfach in einem Skript aufgerufen werden können. Sie helfen dabei, den Code organisiert zu halten und die Aufrechterhaltung einfacher zu machen.
#!/bin/bash -Funktion check_disk_space df -h check_disk_space1234567 | #!/bin/bash -Funktion check_disk_space df -h check_disk_space |
Dieses Skript definiert eine Funktion "Check_disk_space" das läuft die "DF -h" Befehl, die Nutzung des Speicherplatzes zu zeigen. Die Funktion wird dann am Ende des Skripts aufgerufen.
8. Verwenden Sie Protokollierung
Die Protokollierung ist ein wichtiger Teil des Shell -Skripts für DevOps, da es hilft, Fehler zu beheben und die Ausführung des Skripts zu verfolgen. Mit dem Befehl Protokollger können Nachrichten an das Systemprotokoll gesendet werden.
#!/bin/bash -Funktion check_disk_space df -h logger "diskonspace checked" check_disk_space12345678 | #!/bin/bash -Funktion check_disk_space df -h logger "diskonspace checked" check_disk_space |
Dieses Skript sendet eine Nachricht an das Systemprotokoll mit dem Befehl Logger, wenn die Funktion check_disk_space aufgerufen wird.
Abschluss
Shell Scripting ist eine wesentliche Fähigkeit für DevOps -Profis. Wenn Sie diesen Best Practices und Tipps befolgen, können Sie effektivere und wartbarere Skripte für die Automatisierung und Systemverwaltung erstellen. Denken Sie immer daran, Ihre Skripte gründlich zu testen und die Versionskontrolle zu verwenden, um Änderungen zu verfolgen.
- « Awk - erweiterte Funktionen
- Awk arithmetische Operationen Ein Anfängerleitfaden zu grundlegenden Berechnungsmethoden »