यूनिक्स शैल स्क्रिप्ट के लिए उन्नत कमांड लाइन ध्वज लाइब्रेरी का प्रयास करें।
http://code.google.com/p/shflags/
यह बहुत अच्छी और बहुत लचीला है।
फ्लैग प्रकार: यह डेफिन _ * की एक सूची है जिसे आप कर सकते हैं। सभी ध्वज एक नाम, डिफ़ॉल्ट मान, सहायता-स्ट्रिंग, और वैकल्पिक 'संक्षिप्त' नाम (एक-अक्षर नाम) लेते हैं। कुछ झंडे में अन्य तर्क होते हैं, जिन्हें ध्वज के साथ वर्णित किया जाता है।
DEFINE_string: कोई इनपुट लेता है, और इसे एक स्ट्रिंग के रूप में intreprets।
DEFINE_boolean: आम तौर पर कोई तर्क नहीं लेता है: कहते हैं --myflag FLAGS_myflag को सत्य, या --nomyflag को FLAGS_myflag को गलत पर सेट करने के लिए सेट करें। वैकल्पिक रूप से, आप --myflag = true या --myflag = t या --myflag = 0 या --myflag = false या --myflag = f या --myflag = 1 एक विकल्प पास करना एक ही है विकल्प को एक बार पास करने के रूप में प्रभावित करें।
DEFINE_float: एक इनपुट लेता है और इसे फ़्लोटिंग पॉइंट नंबर के रूप में सूचित करता है। शेल प्रति-फ्लोट्स का समर्थन नहीं करता है, इनपुट केवल मान्य फ़्लोटिंग पॉइंट मान होने के रूप में मान्य है।
DEFINE_integer: एक इनपुट लेता है और इसे पूर्णांक के रूप में अंतर्निहित करता है।
विशेष FLAGS: वहाँ कुछ झंडे कि विशेष अर्थ नहीं होता हैं: --help (? या -) एक मानव पठनीय फैशन --flagfile = foo 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 प्रलेखन से की
संभावित डुप्लिकेट इस पाठ ले लिया [कैसे कर मैं बैश में कमांड लाइन तर्कों का विश्लेषण करता हूं?] (Http://stackoverflow.com/questions/192249/how-do-i-parse-command-line-arguments-in-bash) – Jaketr00