Website-Suche

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:

  1. So aktivieren Sie den Shell-Skript-Debugging-Modus unter Linux
  2. So führen Sie den Debugging-Modus für die Syntaxprüfung in Shell-Skripten durch
  3. 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.