← Back to team overview

sslug-teknik team mailing list archive

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