Früher oder später wird man als Linux-User sein erstes kleines Shell-Skript schreiben. Nicht, weil man unter Linux nicht ohne Kommandos, die Shell oder gar eigens „programmierte“ Skripte auskommen würde, sondern weil man dies freiwillig tut, da sich mithilfe von einfachen Bash-Skripten die eine oder andere Aufgabe deutlich beschleunigen lässt. Als Einsteiger bastelt man so lange vor sich hin, bis das Skript funktioniert und seine Aufgabe erledigt. Doch in der Regel macht man dabei eine Reihe von Fehlern, die nicht unmittelbar auffallen, ShellCheck hilft diese aufzudecken und euren „Programmierstil“ zu verbessern.
ShellCheck gibt es unter shellcheck.net im Netz und auch in der Paketverwaltung, der meisten Linux-Distributionen. Unter Debian/Ubuntu, wie auch unter Arch Linux lässt sich das Programm direkt mit einem Kommando einspielen. Anschließend könnt ihr das kleine Programm direkt auf euer Skript loslassen. Solltet ihr auf einem System arbeiten, auf dem sich keine weiteren Programme installieren lassen oder wo euch dazu die nötigen Rechte fehlen, könnt ihr auf die webbasierte Variante zurückgreifen. Am Ende zeigen diese immer dasselbe Ergebnis an.
### ShellCheck unter Debian/Ubuntu installieren... $ sudo apt install shellcheck ### ShellCheck unter Arch Linux installieren... $ sudo pacman -S shellcheck ### Die Hilfe zu ShellCheck... $ shellcheck --help unrecognized option `--help' Usage: shellcheck [OPTIONS...] FILES... -e CODE1,CODE2.. --exclude=CODE1,CODE2.. exclude types of warnings -f FORMAT --format=FORMAT output format -C[WHEN] --color[=WHEN] Use color (auto, always, never) -s SHELLNAME --shell=SHELLNAME Specify dialect (sh,bash,dash,ksh) -x --external-sources Allow 'source' outside of FILES. -V --version Print version information
Im Terminal zeigt ShellCheck die Hinweise auf schlechten Skript-Still in seiner Ausgabe farbiert markiert an. Die Beschreibung hinter dem Report-Codes (SC2046, SC2086 etc.) gibt euch einen ersten Eindruck, von dem was ihr falsch macht. Für weiterführende Details gebt ihr den Code in die Suchfunktion des ShellCheck-Wiki ein. Dort erklärt ShellCheck genauer, was ihr warum falsch macht, zudem gibt es dort Beispiele, wie man die angemahnte Stelle besser gestalten sollte.
Alternativ kopiert ihr euren Code in die webbasierte Version von ShellCheck. Dies macht zwar ein wenig Arbeit, dafür könnt ihr die Report-Codes direkt anklicken, wohin euch der Browser direkt auf die Wiki-Seite führt. Diese Variante ist also besonders dann sinnvoll, wenn ihr ein längeres Skript mit vielen Fehlern überprüfen wollt. So erspart man sich das hin- und herkopieren der Fehlercodes zwischen Terminal und Browser.
Ich hab das Ding mal über mein Build-Script laufen lassen. Schwerer Fehler meinerseits 😉
Bin auch nicht besser 😉
Ich trau mich nicht.;-D
Ich hab das direkt als Vim-Plugin drin, siehe syntastic (https://github.com/scrooloose/syntastic). So passt das richtig gut in den Workflow.