Dateiendungen prüfen

Datum: 2004-02-25
Quelle: suse-linux

Worum ging es?

In einem Script soll ein Eingabeparameter eine Datei sein, die nur eine bestimmte Endung haben darf.

Code
echo $1
if test ! "`basename $1 .txt`.txt" = "`basename $1`"; then
  echo "nur Endung .txt erlaubt / only suffix .txt allowed"
  exit 1
fi
Beschreibung

basename erlaubt die Angabe einer Endung, die dann vom Dateinamen entfernt wird. Damit kann man prüfen, ob die Endung erlaubt ist, indem an die Ausgabe des Kommandos die erlaubte Endung angehängt wird. Wenn das Ergebnis nicht dem ursprünglichen Parameter entspricht, dann wurde eine falsche Endung angegeben.