Hi Friedrich,
hat da jemand "bash" gesagt? :)
On Fri, Nov 21, 2003 at 19:23:53 +0100, phriedrich wrote:
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
<mache-irgendwas-mit-i> done
Das funktioniert spitzenmäßig, bis, ja bis irgendwo Leerzeichen im Dateinamen auftauchen, dann versucht er mit jedem einzelnen Textbaustein das ganze, was natürlich scheitert.
Klar, die for-Schleife iteriert ueber whitespace-separierte Listen[1]. Du kannst stattdessen read in einer while-Schleife aus einer Pipe lesen lassen:
ls <Verzeichnis> | while read i do <mache-irgendwas-mit-i> done
[1] Man kann mit der Shellvariable IFS auch alternative Separatorzeichen setzen.
bye, Chris