天天看點

shell腳本接參數優美用法

在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,如需轉載請自行聯系原作者