No-goes in bash

Ich möchte hier mal eine kleine Sammlung an no-goes was BASH Scripting angeht veröffentlichen.

Es ist doch immer wieder interessant was alles an BASH Scripten in Foren auftaucht. Und jedes mal kämpft man selbst mit Kopfweh und versteht nicht wie so mancher überhaupt auf die Idee kommt, so zu schreiben. Auch wenn einer blutiger Anfänger ist – es gibt Dinge, die man einfach nicht tut. Egal! Hier die „Hal of Shame“

„rm -r *“ Warum auch nicht?

#!/bin/bash
cd /var/spool/cups
rm -r *

Warum auch nicht? Das Script löscht kurz und schmerzlos alle Druckjobs eines CUPS Servers. Ob das gut ist oder nicht – darüber lässt sich streiten.

Was aber passiert wenn der User das Script aus seinem Home-Verzeichnis startet und nicht root ist?

Achja, genau! Ihm fehlen die Rechte, um in das Verzeichnis „/var/spool/cups“ zu wechseln. Er bleibt in seinem Home-Verzeichnis stehen. Der zweite Befehl löscht alles in dem Ordner, in dem er gerade steht (ja, genau – er steht in seinem Home-Verzeichnis).

Der Autor des Scripts war darüber auch noch verwundert… Naja, er hat daraus gelernt…

-v? /dev/null?

In einem Code den ich vor kurzem analysiert habe fand ich folgende Zeile:

tar -xvzf foo.tar >/dev/null

Prinzipiell ist es ja keine schlechte Idee, die Ausgabe eines TAR-Befehls in das Nirvana zu schicken wenn sie stört. Der Parameter „-v“ für „Verbose“ hätte aber auch einfach weggelassen werden können. Tja… Warum einfach wenn es auch verwirrend geht…

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Time limit is exhausted. Please reload the CAPTCHA.