±àд¸ßЧÇÒÓû§ÓÑºÃµÄ shell ½Å±¾Ê±£¬ÕýÈ·´¦ÀíÃüÁîÐвÎÊýÊÇÖÁ¹ØÖØÒªµÄÒ»»·
`getopts` ÊÇ Bash ºÍÆäËû POSIX ¼æÈÝ shell ÖÐÌṩµÄÒ»¸öÄÚÖÃÃüÁËü¼«´óµØ¼ò»¯ÁËÃüÁîÐвÎÊý½âÎöµÄ¹ý³Ì£¬Ê¹¿ª·¢ÕßÄܹ»ÇáËɵشӽű¾µÄÃüÁîÐвÎÊýÖÐÌáȡѡÏîºÍÖµ
±¾ÎĽ«ÉîÈë̽ÌÖ`getopts` µÄ¹¤×÷ÔÀí¡¢Ê¹Ó÷½·¨¼°ÆäÔÚʵ¼Ê³¡¾°ÖеÄÓ¦Óã¬Õ¹Ê¾Æä×÷ΪÃüÁîÐвÎÊý´¦Àí¹¤¾ßµÄ¶ÀÌØ÷ÈÁ¦
Ò»¡¢`getopts` ¼ò½é `getopts` ÊÇÒ»¸öÄÚÖÃÓÚ Bash ºÍÐí¶àÆäËû POSIX ¼æÈÝ shell ÖеÄÃüÁרÃÅÓÃÓÚ½âÎöÃüÁîÐÐÑ¡Ïî
ÓëÊÖ¶¯½âÎö²ÎÊýÏà±È£¬`getopts` ÌṩÁ˸ü¼ò½à¡¢¸ü¿É¿¿µÄ½â¾ö·½°¸
ËüÄܹ»×Ô¶¯´¦Àí¶ÌÑ¡ÏÈç `-a`£©¡¢´ø²ÎÊýµÄÑ¡ÏÈç`-ffilename`£©¡¢ÒÔ¼°´íÎó¼ì²â£¨Èçδ֪ѡÏî»òȱÉÙ±ØÐè²ÎÊý£©
¶þ¡¢`getopts` µÄ»ù±¾Ó÷¨ `getopts` µÄ»ù±¾Óï·¨ÈçÏ£º while getopts :ab:c: opt; do case $opt in a) echo Option -a was triggered ;; b) echo Option -b with value $OPTARG ;; c) echo Option -c with value $OPTARG ;; ?) echo Invalid option: -$OPTARG >&2 ;; :) echo Option -$OPTARG requires an argument. >&2 ;; esac done ÔÚÕâ¸öÀý×ÓÖУ¬`getopts` ÃüÁî±»ÓÃÓÚ½âÎöÃüÁîÐÐÑ¡Ïî `-a`¡¢`-b`ºÍ `-c`
×¢ÒâÒÔϼ¸µã£º - Ñ¡Ïî×Ö·û´® `:ab:c:` ¶¨ÒåÁËҪʶ±ðµÄÑ¡Ïî
ðºÅ: ±íʾ¸ÃÑ¡ÏîÐèÒªÒ»¸ö¸½¼ÓµÄ²ÎÊý£¨¶ÔÓÚ`-b` ºÍ`-c`£©
Èç¹ûÑ¡Ïî²»ÐèÒª²ÎÊý£¬ÔòÖ±½ÓдѡÏî×Öĸ£¨Èç`-a`£©
- `OPTARG` ÊÇÒ»¸öÄÚÖñäÁ¿£¬ÓÃÓÚ´æ´¢µ±Ç°Ñ¡ÏîµÄ²ÎÊýÖµ
- `OPTIND` ÊÇÒ»¸öÄÚÖñäÁ¿£¬ÓÃÓÚ¸ú×ÙÏÂÒ»¸öÒª´¦ÀíµÄÃüÁîÐвÎÊýµÄλÖÃ
- `?` ºÍ:ÊÇ `getopts` ·µ»ØµÄÌØÊâ×Ö·û£¬ÓÃÓÚָʾ´íÎóÇé¿ö£º`?` ±íʾδ֪ѡÏ`:` ±íʾȱÉÙ±ØÐèµÄ²ÎÊý
Èý¡¢´¦Àí´íÎóºÍĬÈÏÐÐΪ `getopts` µÄ´íÎó´¦Àí»úÖÆÔÊÐí¿ª·¢ÕßÓÅÑŵش¦ÀíÎÞЧѡÏîºÍȱÉÙ²ÎÊýµÄÇé¿ö
ÈçÉÏÀýËùʾ£¬Í¨¹ý¼ì²é`$opt` µÄÖµ£¬½Å±¾¿ÉÒÔÇø·ÖÊÇÕý³£Ñ¡ÏÊÇ´íÎóÇé¿ö£¬²¢ÏàÓ¦µØÊä³ö´íÎóÐÅÏ¢
ĬÈÏÇé¿öÏ£¬`getopts` »á×Ô¶¯´¦Àí `--`±êÖ¾£¬Ëü±íʾѡÏîÁбíµÄ½áÊø£¬Ö®ºóµÄËùÓвÎÊý¶¼½«±»ÊÓΪ·ÇÑ¡Ïî²ÎÊý
´ËÍ⣬`getopts` Ò²»áºöÂÔËùÓÐÒÔ `-` ¿ªÍ·µ«²»Æ¥ÅäÒѶ¨ÒåÑ¡ÏîµÄµ¥¸ö×Ö·û£¨³ý·ÇʹÓÃÁË: ±êÖ¾À´Ç¿ÖÆ´íÎó´¦Àí£©