On Fri, 21 Nov 2003 21:01:14 +0100 "Friedrich W. H. Kossebau" Friedrich.W.H@Kossebau.de wrote:
Hi Tobias und Namensvetter,
Am Freitag, 21. November 2003 19:48 schrieb Tobias Koenig:
On Fri, Nov 21, 2003 at 07:23:53PM +0100, phriedrich wrote:
Hallo,
Hi Friedrich,
Wenn ich in einem Bash-Script eine Operation für mehrere Dateien ausführen will empfiehlt sich eine Konstruktion folgendes Typs:
for i in `ls <Verzeichnis>` do
make_something_with "$i"
Mal ausprobiert? Bringt nämlich nichts. Problem ist hier das Wortzerlegen, das durch die Standardbelegung des Internal Field Separator (IFS) der Bash sowohl Tab aber auch Leerzeichen als Trennzeichen verwendet. Genau, einfach mal IDS auf nur Tab setzen, und schon klappts auch mit den leergezeichneten Namen ;)
Z.B.: #!/bin/bash tempIFS=$IFS IFS=$'\t' for i in `ls .` do echo "$i" done IFS=$tempIFS
siehe auch: man:/bash Stichworte Word Splitting, IFS
Komisch nur: entgegen der Angaben funktioniert auch des Nichtsetzen "IFS=", obwohl dann eigentlich wieder die Defaultwerte gelten sollen... Seltsam.
done
Ciao, Tobias
P.S.: dein Realname ist irgendwie komisch ;)
Aber für ihn bestimmt identitätsstiftend :)
Friedrich (weiterer)
Danke für den Tipp, werd ich gleich Testen...wird sicher gehen.
Auf bald auch mal am Mittwoch wieder,
Friedrich