2012-01-17 122 views
0
#!/bin/bash 
#if present -a flag then print this echo 
#echo "A"; 
#if -b is present then print b 
#echo "B" 

#and if -c 10 present how can I read this value '10' ? 

以上就是我想看看我的劇本帶參數的shell腳本呈現

,我希望能夠象這樣開始

myscript.sh -a -b -c 10 

myscript.sh 

myscript.sh -a -c 10 

myscript.sh -c 10 

等在shell上

回答

3

型 '男人的getopt',並按照指示。

1

使用getopts的考慮是這樣的:

arg=-1 
while getopts "c:ab" optionName; do 
    case "$optionName" in 
    a) echo "-a is present";; 
    b) echo "-b is present";; 
    c) arg="$OPTARG"; echo "-c is present [$arg]";; 
    esac 
done 
+0

最初只有-b( 「myscript.sh -b」 )給出了這個「./myscript.sh:選項需要一個參數 - b OPT:? 「 – Lukap 2012-01-17 14:00:36

+0

對不起,我有一個錯字,現在請檢查更新的腳本。沒有參數的選項應該在冒號':'末尾出現。 – anubhava 2012-01-17 14:08:20

+0

乾淨的代碼... +1 – 2012-01-17 14:13:23