2012-02-27 12 views
22

voglio chiamare uno script bash come questoargomenti parse dopo getopts

$ ./scriptName -o -p -t something path/to/file 

Questo è quanto ho

#!/bin/bash 

o=false 
p=false 

while getopts ":opt:" options 
do 
    case $options in 
     o) opt1=true 
     ;; 
     p) opt2=true 
     ;; 
     t) opt3=$OPTARG 
     ;; 
    esac 
done 

ma come faccio ad avere il path/to/file?

risposta

33

Si può fare qualcosa di simile:

shift $(($OPTIND - 1)) 
first_arg=$1 
second_arg=$2 

dopo il ciclo ha funzionato.

+2

Potrebbe essere scritta la prima riga 'shift $ ((OPTIND - 1))' - cioè perdere il simbolo del dollaro tra parentesi? – Armand

+0

Armand, quindi sembra come per: http://www.tldp.org/LDP/abs/html/arithexp.html –

Problemi correlati