Shell Scripte überprüfen mit ShellCheck auch auf dem Raspberry Pi (Zero W) in 5 Minuten möglich und auch JUnit via xslt

Mit shellcheck kann man gut Shell Scripte überprüfen.Das kann man einfach online, über diese GUI www.shellcheck.net ausprobieren oder aber auch installieren.

Für den Raspberry Pi gibt es schon ein installations Packet, deshalb ist die Installation mit

schnell erledigt.

Das ist nun nicht gerade die aktuelle Version 0.5.0 aber immerhin. Ein selbst compilieren kommt für den Pi nicht infrage, da ShellCheck in Haskell programmiert ist und da für den compile mind. 2GB RAM benötigt werden, der Pi hat aber je nach Version max. 1GB.

Nun kann leicht eine Script Datei überprüft werden, mit Aufruf

shellcheck SCRIPT.sh. Hier mal zwei Beispiele:


Ok, komme nun auch in die user-content-gallery-of-bad-code 😉 Hier sind übrigens alle Rules mit Beispielen rechts in der Navi-Leiste zu finden.

JUnit

ShellCheck hat keinen JUnit XML Formatter. Aber man kann im Checkstyle XML Format die Meldungen ausgeben. Z.B.

shellcheck -f checkstyle script.sh

Diese Ausgabe kann nun mit dem vorhandenen checkstyle2junit.xslt transformiert werden. Dazu muss auch noch xmlstarlet installiert werden:

sudo apt-get install xmlstarlet

Nun können wir den XML Output über das XSLT convertieren um JUnit XML zu erhalten:


shellcheck -f checkstyle script.sh | xmlstarlet tr checkstyle2junit.xslt

Und wir erhalten die Testsuite mit Testcase …

Hier die Datei in der JUnit View:

JSON

Die Ausgabe im JSON Format geht natürlich auch. Z.b. mit

shellcheck -f json script.sh

oder besser formatiert:

GCC

Auch das GCC Format ist möglich:

shellcheck -f gcc script.sh