|
| 1 | +Im Folgenden finden Sie einige Best Practices für Bash-Skripte. |
| 2 | + |
| 3 | +## Beginnen Sie mit einem Shebang |
| 4 | + |
| 5 | +Die erste Zeile in einem Bash-Skript sollte lauten: |
| 6 | + |
| 7 | +```bash |
| 8 | +#!/bin/bash |
| 9 | +``` |
| 10 | + |
| 11 | +## Fügen Sie eine Beschreibung hinzu |
| 12 | + |
| 13 | +Fügen Sie am Anfang des Skripts eine Beschreibung ein, wenn dessen Zweck nicht bereits durch den Namen oder Ähnliches eindeutig ersichtlich ist. |
| 14 | + |
| 15 | +## Fehlerbehandlung |
| 16 | + |
| 17 | +Verwenden sie die folgenden „set“-Zeilen, damit das Skript bei Fehlern beendet wird, anstatt diese zu ignorieren: |
| 18 | +````bash |
| 19 | +set -o errexit |
| 20 | +```` |
| 21 | +Weist Bash an, das Skript sofort zu beenden, wenn ein Befehl einen Exit-Status ungleich Null hat. Sie können „|| true“ zu Befehlen hinzufügen, bei denen ein Fehlschlag bzw. ein Exit-Code ungleich Null zulässig ist. |
| 22 | +````bash |
| 23 | +set -o nounset |
| 24 | +```` |
| 25 | +Wenn diese Option gesetzt ist, führt der Verweis auf eine Variable, die Sie zuvor nicht definiert haben – mit Ausnahme von $* und $@ –, zu einem Fehler und bewirkt, dass das Programm sofort beendet wird. |
| 26 | +````bash |
| 27 | +set -o pipefail |
| 28 | +```` |
| 29 | +Diese Einstellung verhindert, dass Fehler in einer Pipeline verdeckt werden. Wenn ein Befehl in einer Pipeline fehlschlägt, wird dessen Rückgabecode als Rückgabecode der gesamten Pipeline verwendet. |
| 30 | + |
| 31 | + |
| 32 | +## Fehlerinformationen an stderr ausgeben |
| 33 | + |
| 34 | +Geben Sie alle Fehlerdaten an stderr aus, indem Sie |
| 35 | +````bash |
| 36 | +echo "this is an error" >&2 |
| 37 | +```` |
| 38 | + |
| 39 | +vor oder hinter „echo“-Befehle setzen. |
| 40 | + |
| 41 | +## Variablen mit ${} verwenden |
| 42 | + |
| 43 | +Verwenden Sie beim Verweisen auf Variablen geschweifte Klammern anstelle von nur $VARIABLE. Dieser Standard verhindert Probleme bei der Verwendung der Bash-Variablen. |
| 44 | + |
| 45 | +## apt-get automatisieren |
| 46 | + |
| 47 | +Die folgenden Zeilen sind nützlich, wenn Software automatisch mit apt-get installiert wird: |
| 48 | +````bash |
| 49 | +apt-get --assume-yes (oder -y) ... |
| 50 | +```` |
| 51 | + |
| 52 | +Automatische Antwort „yes“ auf Fragen von apt-get |
| 53 | +````bash |
| 54 | +DEBIAN_FRONTEND=noninteractive apt-get ... |
| 55 | +```` |
| 56 | + |
| 57 | +Sorgt dafür, dass das Frontend überhaupt nicht mit Ihnen interagiert und bei allen Fragen die Standardantworten verwendet werden. |
| 58 | + |
| 59 | +## Temporäre Daten entfernen |
| 60 | + |
| 61 | +Nachdem Sie Installationsdaten an einen temporären Speicherort kopiert und ausgeführt haben, vergessen Sie nicht, diese zu entfernen, wenn Ihre Installation erfolgreich war. |
| 62 | + |
| 63 | +## Weitere Informationen |
| 64 | + |
| 65 | +[Inoffizielle Beschreibung des Bash-Strict-Modus](http://redsymbol.net/articles/unofficial-bash-strict-mode/) |
| 66 | + |
| 67 | +[Bewährte Vorgehensweisen beim Schreiben von Bash-Skripten](http://kvz.io/blog/2013/11/21/bash-best-practices/) |
0 commit comments