sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #22094
Re: mellemrum i bash
Dit problem er, at $(ls) bliver ekspanderet først, hvorefter den samlede
tekst deles op i ord. Derfor bliver dit filnavn med mellemrum i til to
ord.
En mulig løsning er at bruge
ls | while read x; do echo $x; done
Det vil læse en linie af gangen, dvs et filnavn, og echo'e den.
Der findes selvfølgelig også den mere effektive version af ovenstående:
ls
:-)
Thomas Larsen wrote:
>
> Hej,
>
> Jeg havde gang i at skrive et shellscript, men er gået i stå ved et problem som jeg efter mange forsøg med alverdens programmer ikke har kunnet finde ud af at omgå.
> Det er i en for-løkke at problemet viser sig.
>
> for x in $(ls)
> do
> echo $x
> done
>
> Hvis filerne indeholer et mellemrum bliver de cuttet i mellemrummet og bliver delt over 2 variable.
> Jeg synes efterhånden at jeg kan man-filen til bash udenad. Hvordan får jeg en variabel til at indeholde en streng med et mellemrum i? Nogen der har nogen erfaringer med den slags?
>
> /Thomas
--
René Seindal (rene@xxxxxxxxxx) http://www.seindal.dk/rene/
Follow ups
References