Am Donnerstag, 6. Januar 2005 18:15 schrieb Andreas Feile:
Ich muß hier von Zeit zu Zeit eine Datei eindeutig benennen, und möchte das per Skript so lösen, daß einfach eine fortlaufende Zahl vergeben wird, deren Länge sich aber nicht ändern darf. Das Vorgehen wäre also etwa:
1. Wert der letzten Benennung aus einer Datei holen, sagen wir "000012345"
akt=`cat datei`
2. Datei entsprechend benennen
touch $akt # oder wie auch immer die Datei erzeugt wird
3. Wert um eins erhöhen, hier also "000012346"
neu=`printf "%9.9d" \`expr $akt + 1\``
4. Diesen Wert in die Datei zurückschreiben.
echo $neu >datei
Vor allem Schritt 3 scheint mir problematisch wegen der führenden Nullen. Aber auch bei den anderen Schritten bin ich nicht ganz sicher, wie ich es lösen kann.
Kann mir jemand ein paar Stichpunkte nennen?
Reichen die? ;-) Wichtig: Du musst natürlich die notwendigen Fehlersituationen abprüfen (numerischer Überlauf, Vorhandensein einer Datei mit Namen $akt, Initialisieren von datei mit einem Startwert, konkurrierender Zugriff mehrerer Prozesse auf datei, ...) Jan -- Linux-Quickies: http://www.jan-trippler.de PingoS: http://www.pingos.org