Gå til innhold

bash script: parametere med [space] til for loop


Anbefalte innlegg

Skulle hatt et skript til å utføre noen operasjoner på enkelte utvalgte filer som det får som parametere. Funker i seg selv greit, helt til det kommer en fil med [space] i filnavnet. Med escaping eller quoting kan jeg få parameterene inn i scriptet, men det stopper opp i en for-loop:

 

starter scriptet med:

# ./script fil\ navn\ 1 fil\ navn\ 2 fil\ navn\ 3

eller

# ./script "fil navn 1" "fil navn 2" "fil navn 3"

 

 

#!/bin/bash
echo $1  # printer 'fil navn 1'
echo $2  # printer 'fil navn 2'

for fil in $@
do
echo fil
done
# for løkka printer:
#+fil
#+navn
#+1
#+fil
#+navn
#+2
#+fil
#+navn
#+3

 

Saken er at det kan tenkes det en gang blir mer enn 9 filer, slik at jeg må bruke $@ for å hente inn parameterene. Hva er trikset for å få forløkka til å skjønne hvilke ord som hører sammen?

Lenke til kommentar
Videoannonse
Annonse

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...