2016-08-03 4 views
0

Привет Я создаю скрипт bash, который использует getopts. Теперь я хочу создать параметр «-h», чтобы получить справку. Но каждый раз я должен дать один аргумент параметру.Использование getopts без аргумента для получения справки

Now 

test.sh -h test 

What I want 

test.sh -h 
help 
help 
help 



while getopts :c:s:d:h:I:p:r FLAG; do 
    case $FLAG in 


     s) 
       SOURCE=$OPTARG 
       ;; 
     d) 
       DESTINATION=$OPTARG 
       ;; 
     I) 
       ISSUE=$OPTARG 
       ;; 
     c) 
       CUSTOMER=$OPTARG 
       test -e /etc/squid3/conf.d/$CUSTOMER.conf 
       customer_available=$? 
       ;; 
     p) 
       PORT=$OPTARG 
       ;; 
     h)  HELP=$OPTARG 
       echo help 
+0

вопрос. Не знаю, что делать, если $ OPTARG не существует, чем это обычно не работает – tso

+0

Используйте 'while getopts h: c: s: d: I: p: r FLAG; do' – anubhava

+0

Извините, вопрос непонятен. Пожалуйста, поставите под вопрос, что именно вы хотите выполнить. – sjsam

ответ

2

A : после опции означает, что для опции требуется аргумент.

OPTARG переменная содержит аргумент, который вы передаете этому параметру.

Если вы не хотите аргумент, удалите : после h, а также HELP=$OPTARG.

while getopts :c:s:d:hI:p:r FLAG; do 
... 
    h)  echo help 
... 
done 

Для получения дополнительной информации, пожалуйста, отметьте это link.

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