2012-02-27 4 views
22

Я хочу назвать Баш скрипт, как этотаргументы разбора после getopts

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

Это, насколько я

#!/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 

, но как я могу получить path/to/file?

ответ

33

Вы можете сделать что-то вроде:

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

после того, как петля запуска.

+2

Может ли первая строка быть записана 'shift $ ((OPTIND - 1))' - то есть потерять знак доллара в круглых скобках? – Armand

+0

Armand, так что кажется: http://www.tldp.org/LDP/abs/html/arithexp.html –

Смежные вопросы