#!/bin/bash
#
# Aufruf: datei ...
# Für alle auf der Befehlszeile angegebenen Dateinamen:
# Wenn die Datei wirklich existiert (und eine Datei ist, kein Ordner):
# Den Namen der Datei auf komplett kleingeschrieben ändern (Datei umbenennen)
# (nur den Filenamen, nicht den Directory-Teil!)
# Nur umbenennen, wenn sich der Name wirklich ändert!
# Das Skript soll für jede Datei ausgeben, was es getan hat

for file
do
    if [ -f "$file" ]
    then
        # 3 mal Command Substitution!
        dirname="$(dirname "$file")"
        oldname="$(basename "$file")"
        # tr möchte das, was es klein schreiben soll,
        # als stdin und nicht auf der Befehlszeile ==> Hineinpipen
        newname="$(echo "$oldname" | tr "[:upper:]" "[:lower:]")"
        if [ "$oldname" != "$newname" ]
        then
            # hier sollte man noch prüfen, ob es den neuen Namen schon gibt!
            mv "$file" "$dirname/$newname"
            echo "$file" renamed to "$dirname/$newname"
        else
            echo "$file" unchanged
        fi
    else
        echo "$file" not found >&2
    fi
done
