在shell腳本之shift和getopts篇中有提到getopts,除了bash自帶的内部變量getopts外,util-linux-ng包還提供了一個工具getopt ,該工具較bash内置的getopts更強大,其不僅支援短參-s,還支援–longopt的長參數,甚至支援-longopt的簡化參數。相較于getopts ,getopt 不但支援長短選項,其還支援選項和參數放在一起寫。
getopt [options] -o|–options optstring [options] [–] parameters
選項說明:
-a:使getopt長參數支援”-“符号打頭,必須與-l同時使用
-l:後面接getopt支援長參數清單
-n program:如果getopt處理參數傳回錯誤,會指出是誰處理的這個錯誤,這個在調用多個腳本時,很有用
-o:後面接短參數清單,這種用法與getopts類似
-u:不給參數清單加引号,預設是加引号的(不使用-u選項),例如在加不引号的時候 –longoption “arg1 arg2” ,隻會取到”arg1”,而不是完整的”arg1 arg2”
其有兩種使用方法,如下
方法1:
方法2:
注意:如果getopt指令本身沒有使用-o|–option選項的話,那麼–後面的第一個參數被當做短選項。
運作結果如下:
使用eval 的目的是為了防止參數中有shell指令,被錯誤的擴充。
平時使用時,可以使用的樣例為:
本文轉自 ygqygq2 51CTO部落格,原文連結:http://blog.51cto.com/ygqygq2/1931050,如需轉載請自行聯系原作者