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

Re: mehrere Dateinamen in einer Variablen an Programm übergeben



Morgen,

Ich denke der Trick ist die IFS Variable:
Beispiel:
$ ls
.  ..  file 1  file 2  file 3
$ IFS='\n'
$ for i in $(ls -w 1) ; do echo $i ; done
.
..
file 1
file 2
file 3

Wenn $IFS nicht gesetzt ist werden in der Bash immer Leerzeichen oder Tabstops 
als Trenner Benutzt. '\n' bedeutet Zeilenende und 'ls -w 1' heißt, das die 
Dateien untereinander geschrieben werden.
'.' und '..' kann man raus gebben oder man passt die alasse in seiner .bash rc 
an ;-)

Grüße,
Heiko


On Tuesday 27 August 2013 20:43:16 Matthias Meyer wrote:
> Hallo,
> 
> Ich habe ein Problem mit einem bash-script dem ich mehrere Dateinamen als
> Parameter übergeben will und die Dateinamen können natürlich BLANKS
> enthalten.
> Das test-script:
> #$!/bin/bash
> while test $# -gt 0; do
>     echo :$1:; shift
> done
> exit
> 
> Das funktionert wenn ich die Dateinamen direkt angebe:
> %scripts/test 'file1' 'file name'
> 
> :file1:
> 
> :file name:
> Wenn ich die Dateinamen aber in einer Variablen halte dann geht es nicht
> mehr
> 
> filenames="'file1' 'file name'"
> %scripts/test $filenames
> 
> :'file1':
> :'file:
> 
> :name':
> Wie kann ich eine Liste von Dateinamen in einer Variablen sammeln und dann
> an ein anderes Programm übergeben?


Reply to: