2012-02-27 20 views
22

Tôi muốn gọi một kịch bản bash như thế nàylập luận phân tích cú pháp sau getopts

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

Đây là như xa như tôi có được

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

nhưng làm thế nào để tôi có được path/to/file?

Trả lời

33

Bạn có thể làm một cái gì đó như:

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

sau vòng lặp đã chạy.

+2

Dòng đầu tiên có thể được viết 'shift $ ((OPTIND - 1)) '- tức là mất dấu đô la bên trong dấu ngoặc đơn? – Armand

+0

Armand, vì vậy có vẻ như: http://www.tldp.org/LDP/abs/html/arithexp.html –

Các vấn đề liên quan