Spróbuj shFlags - Zaawansowana biblioteka flag wiersza poleceń dla skryptów powłoki Unix.
http://code.google.com/p/shflags/
To jest bardzo dobre i bardzo elastyczny.
TYPY FLAGOWE: Jest to lista DEFINE _ *, którą można wykonać. Wszystkie flagi pobierają nazwę, wartość domyślną, tekst pomocy i opcjonalną "krótką" nazwę (jedna litera: nazwa). Niektóre flagi mają inne argumenty, które są opisane z flagą.
DEFINE_string: pobiera dowolne dane wejściowe i wprowadza je jako ciąg znaków.
DEFINE_boolean: zwykle nie przyjmuje żadnego argumentu: say --myflag, aby ustawić FLAGS_myflag na true, lub --nomyflag, aby ustawić FLAGS_myflag na false. Alternatywnie, możesz powiedzieć - mojeflag = true lub --myflag = t lub --myflag = 0 lub --myflag = false lub --myflag = f lub --myflag = 1 Przekazywanie opcji ma to samo wpływać jako przekazywanie opcji raz.
DEFINE_float: pobiera dane wejściowe i podaje je jako liczby zmiennoprzecinkowe. Ponieważ powłoka nie obsługuje funkcji pływających per se, dane wejściowe są sprawdzane tylko jako , które są poprawnymi wartościami zmiennoprzecinkowymi.
DEFINE_integer: pobiera dane wejściowe i podaje je jako liczbę całkowitą.
FLAGI SPECJALNE: Istnieje kilka flag, które mają specjalne znaczenie: help (? Lub -) drukuje listę wszystkich flag w sposób czytelny dla człowieka --flagfile = foo czytać flagi z foo. (Jeszcze nie zaimplementowane) - jak w getopt() kończy Flag przetwarzanie
Przykład użycia:
-- 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.
Uwaga: wziąłem ten tekst z dokumentacją shflags
Możliwa duplikat [Jak zrobić Analizuję argumenty wiersza poleceń w bash?] (Http://stackoverflow.com/questions/192249/how-do-i-parse-command-line-arguments-in-bash) – Jaketr00