On Mon, 18 Jun 2001, Antje Bendrich wrote:
for file in $(cat reihenfolge.txt); do .... (Frage an Gurus: Ist das wieder "useless use of cat"?)
Ich bin zwar kein "bash-Guru", aber... Nein, ist es nicht. Das for-builtin nimmt eine, durch eines der in der shell-Variablen $IFS enthaltenen Zeichen getrennte, Liste als Parameter und arbeitet fuer jedes der Elemente dieser Liste dann die Befehle in der 'do...done' Schleife ab. Vergleiche: FILESA="t1 t2 t3" FILESB="t1 t2 t3" DIRS="t1:t2:t3" for f in $FILESA; do echo "f='$f'"; done for f in "$FILESA"; do echo "f='$f'"; done for f in $FILESB; do echo "f='$f'"; done for f in "$FILESB"; do echo "f='$f'"; done for d in $DIRS; do echo "d='$d'"; done OLDIFS="$IFS" IFS=":" for d in $DIRS; do echo "d='$d'"; done for d in "$DIRS"; do echo "d='$d'"; done IFS="$OLDIFS" Ob du nun die Parameter_liste_(!) fuer das 'in ...' direkt, durch eine Variable, eine Wildcard (z.B. *.mp3), oder via `befehl` (bzw. $(befehl)) erzeugst, ist dabei unerheblich. Entscheidend ist _nur_, dass dort _nach_ der Expandierung durch die bash, eine durch $IFS getrennte Liste steht. Ob die Liste nun also eine expandierte Wildcard, eine expandierte Variable oder das Ergebnis eines Befehls oder sonstwas ist, ist irrelevant. Ach ja, IFS enthaelt normalerweise das Leerzeichen ' ' (0x20, ' '), das Tabulatorzeichen ' ' (0x09, \t) und den Zeilenumbruch ' ' (0x0A, \n). Das umdefinieren von IFS wie oben wird u.a. in den diversen tex-scripten (z.B. /var/lib/texmf/web2c/mktex.opt) oft verwendet, um z.B. ':' als Pfadtrenner auszuwerten. HTH -dnh -- Wenigstens hatt man es geschafft, einige von Ihnen in einem Coputerspiel als "Kanonenfutter" zu "verheizen" . Zermatscht sehen sie irgendwie besser aus. Aber Ich glaube selbst "der brei" lebt noch. denn der schreit noch immer . "OhOh!" [WoKo in dag°]