Haben Sie Probleme mit einem Bash-Skript, das Sie für Ihren Linux-PC geschrieben haben? Anstatt unzählige Threads auf StackExchange nach Programmierhilfe zu durchsuchen, sollten Sie das ShellCheck-Tool verwenden, um Linux Bash-Skripte zu debuggen und automatisch Fehler in Ihrem Code zu finden.
Inhaltsverzeichnis
Holen Sie sich ShellCheck
ShellCheck ist ein nützliches Tool, das jedoch nicht standardmäßig mit Ihrem Linux-Betriebssystem geliefert wird. Wenn Sie es verwenden möchten, müssen Sie es stattdessen zuerst installieren. In diesem Tutorial behandeln wir die Installation von ShellCheck aus verschiedenen offiziellen Softwarequellen. Außerdem zeigen wir Ihnen, wie Sie das Programm über die generische Linux-Binärdatei zum Laufen bringen.
Öffnen Sie ein Terminalfenster und aktualisieren Sie Ihre Pakete. Folgen Sie dann den Anweisungen, die Ihrem Linux-Betriebssystem entsprechen.
Ubuntu
ShellCheck befindet sich in den offiziellen Ubuntu-Softwarequellen, daher ist die Installation recht einfach. Verwenden Sie in einem Terminal den Apt-Paketmanager und bringen Sie die neueste Version von ShellCheck zum Laufen.
sudo apt install shellcheck
Debian
Debian Stable hat eine ältere Version von ShellCheck, die Benutzer installieren können. Denken Sie daran, dass diese Version aufgrund der Vorgehensweise von Debian zurückgehalten wird.
Hinweis: Möchten Sie eine neuere Version des ShellCheck-Programms? Folgen Sie unserem Leitfaden und erfahren Sie, wie Sie modernere Software auf Debian erhalten.
sudo apt-get install shellcheck
Arch-Linux
Um ShellCheck auf Arch Linux zu erhalten, müssen Sie zuerst das Software-Repository „Community“ aktivieren. Die Aktivierung von „Community“ erfordert die Bearbeitung der Pacman.conf-Datei. Um die Datei zu bearbeiten, öffnen Sie Pacman.conf in Nano.
sudo nano /etc/pacman.conf
Blättern Sie durch (mit den Pfeiltasten) und suchen Sie den Abschnitt „Community“ der Datei. Entfernen Sie alle Instanzen des #-Symbols (ungefähr drei Zeilen). Speichern Sie dann die Änderungen, indem Sie die Taste Strg + O drücken.
Wenn die neuen Änderungen an Pacman.conf erledigt sind, drücken Sie Strg + X, um Nano zu schließen. Synchronisieren Sie dann Pacman erneut, um den Zugriff auf das „Community“-Repository von Arch Linux einzurichten.
sudo pacman -Syyuu
Installieren Sie schließlich ShellCheck auf Arch Linux mit:
sudo pacman -S shellcheck
Fedora
Um das ShellCheck-Skriptanalysetool unter Fedora Linux zu erhalten, öffnen Sie ein Terminal und verwenden Sie das DNF-Paketverwaltungstool.
sudo dnf install ShellCheck
OpenSUSE
Die Installation von ShellCheck unter OpenSUSE erfordert keine besonderen Schritte, da es in den Hauptsoftwarequellen der Distribution enthalten ist. Geben Sie dazu den folgenden Zypper-Paketbefehl in ein Terminalfenster ein.
sudo zypper install ShellCheck
Generisches Linux
Benutzer weniger bekannter Linux-Distributionen, die Zugriff auf das Skriptanalysetool ShellCheck haben möchten, müssen die universelle Binärversion installieren. Glücklicherweise ist diese Binärversion einfach zu installieren und erfordert kein Herumbasteln am Quellcode. Führen Sie die folgenden Schritte aus, damit es funktioniert!
Schritt 1: Exportieren Sie die Version von ShellCheck, die Sie herunterladen möchten, in Ihre Terminalumgebung.
export scversion="stable" # or "v0.4.7", or "latest"
Schritt 2: Holen Sie sich mit dem wget-Download-Tool die neueste ShellCheck-Binärversion.
wget "https://storage.googleapis.com/shellcheck/shellcheck-${scversion}.linux.x86_64.tar.xz"
Schritt 3: Extrahieren Sie das ShellCheck TarXZ-Archiv mit dem tar-Befehl.
tar --xz -xvf shellcheck-"${scversion}".linux.x86_64.tar.xz
Schritt 4: Installieren Sie ShellCheck mit dem cp-Befehl auf Ihrem Linux-PC.
cp shellcheck-"${scversion}"/shellcheck /usr/bin/
Debuggen Sie Skripte mit ShellCheck
Der Hauptzweck von ShellCheck besteht darin, ein Skript (normalerweise Bash) zu überprüfen, missbrauchte Befehle zu erkennen und Korrekturen anzubieten. Gehen Sie für die grundlegende Verwendung wie folgt vor.
Zuerst CD, wo sich das Skript, das Sie überprüfen möchten, auf Ihrem Linux-PC befindet. In diesem Tutorial befindet sich unser Skript in ~/shell-scripts. Ihre können abweichen.
cd ~/shell-scripts
Führen Sie den Befehl ls aus und zeigen Sie alle Dateien im aktuellen Verzeichnis an.
Hinweis: Wenn Sie beabsichtigen, ShellCheck in einem Verzeichnis mit mehreren Dateitypen zu verwenden, ist es eine gute Idee, grep und ls miteinander zu kombinieren. Wenn Sie diese beiden Befehle zusammen verwenden, können Sie alle Nicht-Skriptdateien herausfiltern.
ls
Oder kombinieren Sie es mit grep, um nur Skriptdateien anzuzeigen.
ls | grep ".sh" ls | grep ".bash"
Suchen Sie den Namen einer Skriptdatei in der ls-Eingabeaufforderung und markieren Sie den Dateinamen mit der Maus. Wenn Sie fertig sind, führen Sie es durch ShellCheck und überprüfen Sie Ihren Code.
shellcheck name-of-file.sh
oder
shellcheck name-of-file.bash
Unmittelbar nachdem der Shellcheck-Befehl ausgeführt wurde, erkennt er Probleme mit Ihrem Code und fügt ihn in die Terminal-Eingabeaufforderung ein. Lesen Sie es durch und erfahren Sie, wie Sie Ihre Programmierung verbessern können, indem Sie den darin enthaltenen Vorschlägen folgen.
ShellCheck-Bericht in einer Datei speichern
Das Erhalten eines sofortigen Berichts im Terminal für Ihre Bash-Programmierung ist sehr nützlich, aber Sie können ihn verlieren, wenn Sie das Terminal schließen. Um den Verlust Ihres Shellcheck-Berichts zu umgehen, empfehlen wir, die Ausgabe in einer Textdatei zu speichern, indem Sie das Programm in Kombination mit der >>-Funktion im Terminal ausführen.
shellcheck name-of-file.sh >> ~/Documents/shellcheck-report-name-of-file.sh
oder
shellcheck name-of-file.bash >> ~/Documents/shellcheck-report-name-of-file.bash
Zeigen Sie Ihren gespeicherten Bericht im Terminal über den cat-Befehl an.
cat ~/Documents/shellcheck-report-name-of-file.sh | more
oder
cat ~/Documents/shellcheck-report-name-of-file.bash | more