Best Practices und Tipps zum Schreiben von Shell -Skripten als Pro

Best Practices und Tipps zum Schreiben von Shell -Skripten als Pro

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 fort
123456789#!/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 # Drucken
12345678910111213#!/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 Ausgabeverzeichnis
12345678910111213141516171819202122232425#!/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_path
12345#!/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" fi
12345678#!/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_space
1234567#!/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_space
12345678#!/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.