10 nützliche Tipps zum Schreiben effektiver Bash-Skripte unter Linux
Shell-Scripting ist die einfachste Form der Programmierung, die Sie unter Linux erlernen/ausführen können. Darüber hinaus ist es eine erforderliche Fähigkeit für die Systemadministration, um Aufgaben zu automatisieren und neue einfache Dienstprogramme/Tools zu entwickeln, um nur einige zu nennen.
In diesem Artikel geben wir 10 nützliche und praktische Tipps zum Schreiben effektiver und zuverlässiger Bash-Skripte. Dazu gehören:
1. Verwenden Sie in Skripten immer Kommentare
Dies ist eine empfohlene Vorgehensweise, die nicht nur auf Shell-Scripting angewendet wird, sondern auf alle anderen Arten der Programmierung. Das Schreiben von Kommentaren in ein Skript hilft Ihnen oder anderen Personen, die Ihr Skript durchgehen, zu verstehen, was die verschiedenen Teile des Skripts bewirken.
Kommentare werden zunächst mit dem Zeichen #
definiert.
#TecMint is the best site for all kind of Linux articles
2. Lassen Sie ein Skript beenden, wenn es fehlschlägt
Manchmal führt Bash ein Skript auch dann weiter aus, wenn ein bestimmter Befehl fehlschlägt, was sich auf den Rest des Skripts auswirkt (was schließlich zu logischen Fehlern führen kann). Verwenden Sie die folgende Zeile, um ein Skript zu beenden, wenn ein Befehl fehlschlägt:
#let script exit if a command fails
set -o errexit
OR
set -e
3. Lassen Sie ein Skript beenden, wenn Bash eine nicht deklarierte Variable verwendet
Bash könnte auch versuchen, ein nicht deklariertes Skript zu verwenden, was zu einem logischen Fehler führen könnte. Verwenden Sie daher die folgende Zeile, um Bash anzuweisen, ein Skript zu beenden, wenn es versucht, eine nicht deklarierte Variable zu verwenden:
#let script exit if an unsed variable is used
set -o nounset
OR
set -u
4. Verwenden Sie doppelte Anführungszeichen, um auf Variablen zu verweisen
Die Verwendung doppelter Anführungszeichen beim Referenzieren (unter Verwendung eines Variablenwerts) trägt dazu bei, Wortaufteilung (in Bezug auf Leerzeichen) und unnötiges Globbing (Erkennen und Erweitern von Platzhaltern) zu verhindern.
Schauen Sie sich das folgende Beispiel an:
#!/bin/bash
#let script exit if a command fails
set -o errexit
#let script exit if an unsed variable is used
set -o nounset
echo "Names without double quotes"
echo
names="Tecmint FOSSMint Linusay"
for name in $names; do
echo "$name"
done
echo
echo "Names with double quotes"
echo
for name in "$names"; do
echo "$name"
done
exit 0
Speichern Sie die Datei, beenden Sie den Vorgang und führen Sie ihn dann wie folgt aus:
./names.sh
5. Verwenden Sie Funktionen in Skripten
Denken Sie außer bei sehr kleinen Skripten (mit wenigen Codezeilen) immer daran, Funktionen zu verwenden, um Ihren Code zu modularisieren und Skripte besser lesbar und wiederverwendbar zu machen.
Die Syntax zum Schreiben von Funktionen lautet wie folgt:
function check_root(){
command1;
command2;
}
OR
check_root(){
command1;
command2;
}
Verwenden Sie für einzeiligen Code nach jedem Befehl Abschlusszeichen wie folgt:
check_root(){ command1; command2; }
6. Verwenden Sie=anstelle von == für String-Vergleiche
Beachten Sie, dass ==
ein Synonym für =
ist. Verwenden Sie daher nur einen einzelnen =
für Zeichenfolgenvergleiche, zum Beispiel:
value1=”linux-console.net”
value2=”fossmint.com”
if [ "$value1" = "$value2" ]
7. Verwenden Sie $ (Befehl) anstelle des alten „Befehls“ für die Substitution
Bei der Befehlsersetzung wird ein Befehl durch seine Ausgabe ersetzt. Verwenden Sie $ (Befehl)
anstelle der Backquotes `command`
für die Befehlsersetzung.
Dies wird sogar vom Shellcheck-Tool empfohlen (zeigt Warnungen und Vorschläge für Shell-Skripte an). Zum Beispiel:
user=`echo “$UID”`
user=$(echo “$UID”)
8. Verwenden Sie „Schreibgeschützt“, um statische Variablen zu deklarieren
Eine statische Variable ändert sich nicht; Sein Wert kann nicht mehr geändert werden, sobald er in einem Skript definiert ist:
readonly passwd_file=”/etc/passwd”
readonly group_file=”/etc/group”
9. Verwenden Sie Großbuchstaben für ENVIRONMENT-Variablen und Kleinbuchstaben für benutzerdefinierte Variablen
Alle Bash-Umgebungsvariablen werden mit Großbuchstaben benannt. Benennen Sie Ihre benutzerdefinierten Variablen daher mit Kleinbuchstaben, um Konflikte bei Variablennamen zu vermeiden:
#define custom variables using lowercase and use uppercase for env variables
nikto_file=”$HOME/Downloads/nikto-master/program/nikto.pl”
perl “$nikto_file” -h “$1”
10. Führen Sie bei langen Skripten immer ein Debugging durch
Wenn Sie Bash-Skripte mit Tausenden von Codezeilen schreiben, kann das Finden von Fehlern zum Albtraum werden. Um Probleme einfach zu beheben, bevor Sie ein Skript ausführen, führen Sie einige Debugging-Vorgänge durch. Meistern Sie diesen Tipp, indem Sie die folgenden Leitfäden durchlesen:
- So aktivieren Sie den Shell-Skript-Debugging-Modus unter Linux
- So führen Sie den Debugging-Modus für die Syntaxprüfung in Shell-Skripten durch
- So verfolgen Sie die Ausführung von Befehlen in Shell-Skripten mit Shell-Tracing
Das ist alles! Haben Sie weitere bewährte Bash-Scripting-Praktiken, die Sie mit uns teilen möchten? Wenn ja, dann nutzen Sie dazu das Kommentarformular unten.