← Back to team overview

sslug-teknik team mailing list archive

SV: Re: For i in ?

 

> root# cat lenk
> #!/bin/bash
> 
> for i in $( cat katalog )
> 
>          do
>                  echo "$1\n"
>          done
> 
> echo "Done"
[...]
> Var tog texten vägen???? Vad är det nu jag gjort?

Hej Håkan.

Du har skrevet $1 istedet for $i. Man ville
umiddelbart forvente at følgende ville virke:

  for i in $( cat katalog )

        do
                echo "line"
                echo \"$i\"
        done

  echo "Done"

og du ville få hver linie i "katalog"-filen quotet med
dobbelt-pinger, men sådan går det ikke. Problemet er
vist at "in" deler input op på både newline OG space.
Min konklusion på det er at det er langt lettere at
skrive den slags i Python eller Perl :-).

Se iøvrigt en laaang tråd om quoting i bash på

http://www.sslug.dk/emailarkiv/teknik/2005_12/msg00010.html

Mvh
-- Jan

__________________________________________________
Bruger du Yahoo!?
Er du træt af spam?  Yahoo!Mail har den bedste spambeskyttelse, der findes 
http://dk.mail.yahoo.com 


References