Forums Neueste Beiträge
 

for-Schleife: wie erkenne ich letzte Position?

23/07/2012 - 11:06 von Ansgar Strickerschmidt | Report spam
Hallo Ng,

ich mache eine for-Schleife der Form:

for i in "$(ls dateiname*)"; do
...
done

Die Dateinamen sind generell durchnumeriert und in der Anzahl nicht
definiert, und es können (im gesondert auszuwertenden Fehlerfall) auch
Lücken existieren. Also bspw.
dateiname1
dateiname2
dateiname4
dateiname5
dateiname7
dateiname8
dateiname9
dateiname10

Ich möchte wissen, wann ich bei dem letzten tatsàchlich vorhandenen
Eintrag angekommen bin, um diesem eine Sonderbehandlung zukommen zu lassen.
Die shell ist übrigens die von busybox und keine vollwertige bash.

Ideen? Gibt's da nicht irgendwas mit "MAX"?

Ansgar


*** Musik! ***
 

Lesen sie die antworten

#1 Heinz Müller
23/07/2012 - 11:18 | Warnen spam
Am 23.07.2012 11:06, schrieb Ansgar Strickerschmidt:
Hallo Ng,

ich mache eine for-Schleife der Form:

for i in "$(ls dateiname*)"; do
...
done

Die Dateinamen sind generell durchnumeriert und in der Anzahl nicht
definiert, und es können (im gesondert auszuwertenden Fehlerfall) auch
Lücken existieren. Also bspw.
dateiname1
dateiname2
dateiname4
dateiname5
dateiname7
dateiname8
dateiname9
dateiname10

Ich möchte wissen, wann ich bei dem letzten tatsàchlich vorhandenen
Eintrag angekommen bin, um diesem eine Sonderbehandlung zukommen zu lassen.
Die shell ist übrigens die von busybox und keine vollwertige bash.

Ideen? Gibt's da nicht irgendwas mit "MAX"?

Ansgar




Hi,

eine poor mans Lösung wàre einfach vor der Schleife die Anzahl zu
bestimmen, etwa so:

ANZAHL=`ls dateiname* | wc -l`

und in der Schleife dann einen Zàhler hochlaufen zu lassen, welcher
dann prüft ob der aktuelle Zàhlerstand -eq $ANZAHL ist.

Mal so auf die Schnelle!

Gruß
Heinz

Ähnliche fragen