rklm schrieb:
Etwas anderes hat Deine Version aber auch nicht gemacht.
Irgendwie doch, siehe unten. Dieses Auslesen ist ja eine wesentliche Funktionalität des Skripts, ohne die das ganze Backupsystem nicht mehr funktioniert - und das hat es irgendwie, wie gesagt. Ich bin kein großer Skripter und freu mich deshalb, wenn einer sowas zur Verfügung stellt. Ergo hab ichs ohne größere Änderungen übernommen und genutzt, bis mir jetzt unter Trusty aufgefallen ist, dass es nicht mehr funktioniert. Dass es nicht die hohe Kunst ist, wird mir langsam klar, aber es hat mir zuverlässig die gewünschten Backuparchive angelegt, muss also auch irgendwie die Zahl aus dem Dateinamen ausgelesen haben.
Schau mal in der bash
Manpage nach, zu was !# expandiert wird.
Zur "entire command line typed so far." Nur, das ist ja nicht auf meinem Mist gewachsen, sondern steht so im Skript ausm Wiki – das obendrein bei mir unter Precise wunderbar funktioniert hat, und zwar in genau dieser Form. Haben sich da ernsthaft so basale Dinge seitdem geändert?
Ich glaube, ich muss mir das nochmal genauer anschauen. Das ist nicht die History-Expansion. Aber ich kann auch keine Beschreibung im Abschnitt "Parameter Expansion" der Manpage der bash
finden, die dazu passt. Seltsam.
Genau das war auch mein Ergebnis, als ich versucht hab durchzusteigen, was da bei den zwei Zeilen im Originalskript eigentlich passiert - ein Konstrukt wie ${!#}
hab ich sonst nirgends gefunden. Umso erschreckender, dass es funktioniert hat - und das im Terminal auch nach wie vor tut:
| /home/xyz/Sicherung/> dir
backup-002.tgz backup-004.tgz backup-003.tgz
/home/xyz/Sicherung/> set -- backup_???.tgz
/home/xyz/Sicherung/> echo ${!#}
backup-004.tgz
|
Probleme sind jedenfalls gelöst - ich danke euch beiden vielmals!
- Edit -
Das Skript tut nun was es soll. Was meint ihr, soll ich es im Wiki im Skripte-Bereich als alternative Version des bestehenden Skripts zur Verfügung stellen?