Mr. Floppy Skrevet 29. april 2006 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/?
Gjest Slettet+6132 Skrevet 29. april 2006 Skrevet 29. april 2006 hvis du skriver ls -l i en mappe vil hvertfall mapper med mellomrom vises som foo\ bar
Orjanp Skrevet 24. mai 2006 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
Zenit Skrevet 3. juni 2006 Skrevet 3. juni 2006 Du kan også kombinere litt: `dirname "$file"` Det bør gå bra så lenge variabelen er mellom doble anførselstegn.
meastp Skrevet 8. juni 2006 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
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å