Mr. Floppy Skrevet 29. april 2006 Del Skrevet 29. april 2006 Sitter her og prøver meg på noe jeg ikke har så all verdens kjennskap til: Nemlig bash. Nå skal jeg kjøre et skript mot en samba-share hvor windows-brukerne har laget mange mappe- og filnavn med mellomrom i. Et nedkoket, typisk eksempel på det jeg lurer på: file="moo/foo foo/bar.ext" `dirname $file` Hvordan skal jeg escape for at dirname skal forstå input og si at svaret er moo/foo foo/? Lenke til kommentar
Gjest Slettet+6132 Skrevet 29. april 2006 Del Skrevet 29. april 2006 hvis du skriver ls -l i en mappe vil hvertfall mapper med mellomrom vises som foo\ bar Lenke til kommentar
Orjanp Skrevet 24. mai 2006 Del Skrevet 24. mai 2006 (endret) Som nevnt tidligere. Du kan prøve med \<mellomrom>, altså '\ ' Blir da file="moo/foo\ foo/bar.ext" Endret 24. mai 2006 av Orjanp Lenke til kommentar
Zenit Skrevet 3. juni 2006 Del Skrevet 3. juni 2006 Du kan også kombinere litt: `dirname "$file"` Det bør gå bra så lenge variabelen er mellom doble anførselstegn. Lenke til kommentar
meastp Skrevet 8. juni 2006 Del Skrevet 8. juni 2006 (endret) file="\"moo/foo foo/bar.ext\"" Det fungerer også. \ betyr her at det neste tegnet bare tolkes som et tegn uten funksjon. Som du ser, er det mange utveier. BTW: i stedet for `dirname $file` kan (og bør) du bruke $(dirname $file) Endret 8. juni 2006 av meastp Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå