Prova shFlags - Libreria di flag di riga di comando avanzata per script di shell Unix.
http://code.google.com/p/shflags/
è molto buono e molto flessibile.
TIPI DI FLAG: Questa è una lista di DEFINE _ * che puoi fare. Tutti i flag accettano un nome, un valore predefinito, una stringa di aiuto e un nome "breve" facoltativo (nome a una lettera). Alcuni flag hanno altri argomenti, che sono descritti con la bandiera.
DEFINE_string: accetta qualsiasi input e lo reimposta come una stringa.
DEFINE_boolean: in genere non accetta alcun argomento: ad esempio --myflag per impostare FLAGS_myflag su true o --nomyflag per impostare FLAGS_myflag su false. In alternativa, è possibile dire --myflag = true o --myflag = t o --myflag = 0 o --myflag = false o --myflag = f o --myflag = 1 Il passaggio di un'opzione ha lo stesso valore influenzare come passare l'opzione una volta.
DEFINE_float: prende un input e lo immette come numero in virgola mobile. Poiché la shell non supporta float per sé, l'input è semplicemente convalidato come come valore in virgola mobile valido.
DEFINE_integer: prende un input e lo reinterpreta come un numero intero.
flag speciali: Ci sono un paio di bandiere che hanno un significato speciale: --help (? O -) stampa un elenco di tutte le bandiere in modo leggibile --flagfile = foo leggere bandiere di foo. (Non ancora implementato) - come in getopt(), termina la bandiera di elaborazione
esempio di utilizzo:
-- 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.
Nota: ho preso questo testo dalla documentazione shflags
Eventuali duplicati di [Come fare Analizzo gli argomenti della riga di comando in bash?] (Http://stackoverflow.com/questions/192249/how-do-i-parse-command-line-argiments-in-bash) – Jaketr00