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 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 Ihnen 10 nützliche und praktische Tipps zum Schreiben effektiver und zuverlässiger Bash-Skripte, darunter:

1. Verwenden Sie immer Kommentare in Skripten

Dies ist eine empfohlene Vorgehensweise, die nicht nur auf Shell-Skripte, sondern auch auf alle anderen Arten der Programmierung angewendet wird. Das Schreiben von Kommentaren in einem Skript hilft Ihnen oder einer anderen Person, die Ihr Skript durchgeht, zu verstehen, was die verschiedenen Teile des Skripts tun.

Zunächst einmal werden Kommentare 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 kann es vorkommen, dass bash ein Skript auch dann weiter ausführt, 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. Beenden Sie ein Skript, wenn Bash eine nicht deklarierte Variable verwendet

Bash versucht möglicherweise auch, ein nicht deklariertes Skript zu verwenden, das einen logischen Fehler verursachen kann. 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 von doppelten Anführungszeichen beim Referenzieren (unter Verwendung eines Werts einer Variablen) hilft, Wortsplitting (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 sie, und führen Sie sie dann wie folgt aus:

$ ./names.sh

5. Verwenden Sie Funktionen in Skripten

Mit Ausnahme von sehr kleinen Skripten (mit ein paar Zeilen Code) denken Sie immer daran, Funktionen zu verwenden, um Ihren Code zu modularisieren und Skripte lesbarer und wiederverwendbarer 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 Beendigungszeichen 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 ein einzelnes = für String-Vergleiche, zum Beispiel:

value1=”linux-console.net”
value2=”fossmint.com”
if [ "$value1" = "$value2" ]

7. Verwenden Sie $ (Befehl) anstelle des alten 'Befehls' für die Substitution

Die Befehlsersetzung ersetzt einen Befehl durch seine Ausgabe. Verwenden Sie $ (Befehl) anstelle von Anführungszeichen 'Befehl' 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, nachdem er in einem Skript definiert wurde:

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, daher verwenden Sie Kleinbuchstaben, um Ihre benutzerdefinierten Variablen zu benennen und Variablennamenskonflikte 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 immer Debugging für lange Skripte durch

Wenn Sie Bash-Skripte mit Tausenden von Codezeilen schreiben, kann das Auffinden von Fehlern zu einem Albtraum werden. Um Probleme vor dem Ausführen eines Skripts einfach zu beheben, führen Sie einige Debuggen durch. Meistern Sie diesen Tipp, indem Sie sich die folgenden Anleitungen durchlesen:

  1. So aktivieren Sie den Shell-Skript-Debugging-Modus unter Linux
  2. Ausführen des Debugmodus für die Syntaxprüfung in Shell-Skripten
  3. So verfolgen Sie die Ausführung von Befehlen in einem Shell-Skript mit der Shell-Ablaufverfolgung

Das ist alles! Haben Sie noch andere Best Bash-Scripting-Praktiken, die Sie mit Ihnen teilen möchten? Wenn ja, dann verwenden Sie dazu das Kommentarformular unten.

Verwandte Artikel: