嘗試shFlags - Unix shell腳本的高級命令行標誌庫。
http://code.google.com/p/shflags/
這是非常好,非常靈活。
標記類型:這是您可以執行的DEFINE _ *的列表。所有標誌均採用 的名稱,缺省值,幫助字符串和可選的「簡短」名稱(單字母 名稱)。有些標誌還有其他的參數,用標誌來描述。
DEFINE_string:接受任何輸入,並將其解釋爲字符串。
DEFINE_boolean:通常不會採用任何參數:say --myflag將 FLAGS_myflag設置爲true,或者--nomyflag將FLAGS_myflag設置爲false。 或者,您可以說 --myflag = true或--myflag = t或--myflag = 0或 --myflag = false或--myflag = f或--myflag = 1 傳遞選項具有相同影響一次傳遞選項。
DEFINE_float:獲取輸入和intreprets它作爲一個浮點數。作爲 殼不支持每本身浮筒,輸入僅驗證爲 是一個有效的浮點值。
DEFINE_integer:獲取輸入和intreprets它作爲一個整數。
特殊標誌:有跡象表明,有特殊意義的幾個標誌: --help(或 - )打印在人類可讀的方式 --flagfile = foo的讀取富旗所有標誌的列表。 (尚未實施) - 在getopt的(),結束標誌處理
實例:
-- begin hello.sh --
! /bin/sh
. ./shflags
DEFINE_string name 'world' "somebody's name" n
FLAGS "[email protected]" || exit $?
eval set -- "${FLAGS_ARGV}"
echo "Hello, ${FLAGS_name}."
-- end hello.sh --
$ ./hello.sh -n Kate
Hello, Kate.
注:我把這個文本從shflags文檔
可能的複製[怎麼辦我解析在bash命令行參數?](http://stackoverflow.com/questions/192249/how-do-i-parse-command-line-arguments-in-bash) – Jaketr00