[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: mehrere Dateinamen in einer Variablen an Programm übergeben



On Wed, 28 Aug 2013 08:42:46 +0200
"heiko@xm" <hf@xmachina.de> wrote:

> $ for i in $(ls -w 1) ; do echo $i ; done

Ganz dickes Foul. Niemalsnie(!!) in einem sh oder Bash script ls parsen!
Allgemeiner gesagt, niemals *irgendwas* parsen, was Dateinamen ausgibt,
um mit diesen weiterzuarbeitern. 
Über Dateien iteriert man einfach per "for i in *"

Jedes Zeichen ausser NUL und / sind gültig in Dateinamen. Deine Dateien
können also von Leerzeichen, über Zeilentrenner und Semikolons bis zu
Tabstops alles haben.

Weitere Infos:
http://mywiki.wooledge.org/ParsingLs
http://mywiki.wooledge.org/BashPitfalls#for_i_in_.24.28ls_.2A.mp3.29

LG,
Micha


Reply to: