delete_dir ist eine Function, da haben $1 $2 $3 ... den Wert der parameter, den du an die Function übergibst, nicht die, die an das Script uebergeben wurden. Abgesehen davon: rm -rf nicht_leeres_verzeichnis löscht bereits nicht leere Verzeichnisse, da brauchts kein script für. -- Gruß, virtual Quote of the Month Ich eß' nur was ein Gesicht hat (Creme 21)
shift macht das gleiche, wie ein shift bei Perl: wenn du eine Kommandozeiel hast, wird diese ja in $1 ... $N gespeichert (für N>9 ist die Syntax ${N} zu verwenden). Meistens ist es so, dass man die Parameter von vorne nach hinten "vernascht". shift löscht also $1 und verschiebt alle übrigen nach vorne:
Vor shift:
Code:
$1 = hallo $2 = welt $3.. = <weitere argumente>
Nach shift:
Code:
$1 = welt $2.. = <weitere argumente>
-- Gruß, virtual Quote of the Month Ich eß' nur was ein Gesicht hat (Creme 21)