README
Wer Go beherrscht, kann damit recht komfortabel Shell-Skripte ersetzen. Bibliotheken wie Script sparen Tipparbeit und sorgen für knackigen, lesbaren Code. Dabei hilft es, wenn Sie alte Shell-Denkmuster ablegen und den Go-Code direkt in ein leicht zu verteilendes Binary gießen.
Um die Log-Dateien auf einem System zu zählen, genügt ein kleines Shell-Skript wie der folgende Einzeiler, der uns hier als Beispiel dienen soll:
Oft führen solche Shell-Skripte mit wenig Code zu schnellen Ergebnissen. Bei etwas komplexeren Aufgaben mutieren Shell-Skripte allerdings häufig zu einem kryptischen Zeichensalat. Bereits der Einzeiler aus unserem Beispiel erweist sich als nicht ganz selbsterklärend: find liefert jede Datei mit der Endung .log in einer eigenen Zeile zurück. Anschließend zählt wc ‐l die Treffer – eigentlich sollte es sich Wörter vorknöpfen. Wer die Parameter von Wc nicht auswendig kennt, könnte daher von einem falschen Verhalten ausgehen.
Beim Einlesen in vorhandene Skripte benötigen Sie deshalb oft das Bash-Handbuch, die Manpages von Kommandozeilenwerkzeugen und eine gute Internet-Suchmaschine. Die kryptischen Befehle stehen nicht nur dem Verständnis im Weg, sie erschweren zudem das Testen. Bei komplexen Aufgaben setzt darüber hinaus oft der Funktionsumfang der Werkzeuge gewisse Grenzen, was nicht selten in hässlichen Workarounds mündet. Wer regelmäßig in anderen Sprachen programmiert, muss zudem noch zwischen unterschiedlichen Syntaxen hin und her springen.
Langsam und schnell
Die Kommandos im Shell-Skript arbeitet ein Interpreter geruhsam nacheinander ab. Hinzu kommt, dass zahlreiche Shell-Skripte ihre Daten ineffizient durch die Pipes schieben. Beides bremst spätes tens dann, wenn die Skripte