Roland M. Kruggel:

>ich muss über Dateien die im /tmp liegen iterieren.

>ein
>  FILES=`ls /tmp/*.name.ext`

>funktioniert eigentlich ganz gut. So lange mindestens ein file 
>vorhanden ist. Sonst steigt ls mit einer feglermeldung aus.

Achtung: Das funktioniert nur, wenn Dateinamen keine
White-Space-Zeichen enthalten. Und das kannst du in /tmp, wo
jeder Dateien erzeugen kann, nicht ausschließen!

Sauber geht's so:

Annahme: Der Kommandointerpreter ist bourne-shell- oder
posix-shell-kompatibel:

# Liste der positional Parameters leeren:
set ''; shift
for file in /tmp/*.name.ext
do
   # stelle mit sicher, dass Datei wirklich vorhanden:
   test -e "$file" && set -- ${1+"$@"} "$file"
done

# Jetzt sind die gefundenen Namen in $@, der Liste der positional
# Parameters und die Anzahl in $#

Warum ist es innerhalb der Schleife nötig, zu überprüfen, ob der
"gefundene" Name wirklich vorhanden ist?

Antwort: Wenn das Bourne-Shell zu einem Dateinamens-Muster in
einer Parameterliste oder in einem For-Schleifen-Kopf keine Datei
findet, wird das Muster nicht aus der Liste entfernt sondern
unverändert in die Liste gesetzt, d.h. wenn keine Datei gefunden
wurde, enthält die Liste das eine Wort '/tmp/*.name.ext'

-- 
Bitte in die Adressierung auch meinen|Please put my full name also into
Vor- u. Nachnamen stellen z.B.       |the recipient like
Friedhelm Waitzmann <[EMAIL PROTECTED]>, (Friedhelm Waitzmann) [EMAIL 
PROTECTED],
"Waitzmann, Friedhelm" <[EMAIL PROTECTED]>


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)

Antwort per Email an