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: