µÚÒ»·¶ÎÄÍø - רҵÎÄÕ·¶ÀýÎĵµ×ÊÁÏ·ÖÏíÆ½Ì¨

linuxѧϰ±Ê¼Ç

À´Ô´£ºÓû§·ÖÏí ʱ¼ä£º2025/5/29 7:55:20 ±¾ÎÄÓÉloading ·ÖÏí ÏÂÔØÕâÆªÎĵµÊÖ»ú°æ
˵Ã÷£ºÎÄÕÂÄÚÈݽö¹©Ô¤ÀÀ£¬²¿·ÖÄÚÈÝ¿ÉÄܲ»È«£¬ÐèÒªÍêÕûÎĵµ»òÕßÐèÒª¸´ÖÆÄÚÈÝ£¬ÇëÏÂÔØwordºóʹÓá£ÏÂÔØwordÓÐÎÊÌâÇëÌí¼Ó΢ÐźÅ:xxxxxxx»òQQ£ºxxxxxx ´¦Àí£¨¾¡¿ÉÄܸøÄúÌṩÍêÕûÎĵµ£©£¬¸ÐлÄúµÄÖ§³ÖÓëÁ½⡣

λÃüÁîÀ´Òƶ¯2¸öλÖá£

ÕýÈç»ù±¾¹¦ÄÜÒ»Ñù£¬Õâ¸ö¹ý³Ì¿ÉÒÔÔÚÈκÎÄãËùÑ¡ÔñµÄµØ·½¹¤×÷£¨Çë¼Çס£¬°üÀ¨Ã¿¸öÑ¡ÏîµÄÊʵ±µÄÑ¡Ïî²ÎÊý£©£º

$ ./test17 -b test1 -a -d

Found the -b option, with parameter value test1 Found the -a option -d is not an option $

ÏÖÔÚÄãÓÐÄÜÁ¦ÔÚÄãµÄ½Å±¾Öд¦ÀíÃüÁîÐÐÑ¡Ïµ«ÕâÒ²ÓоÖÏÞÐÔ£¬ÀýÈ磬Èç¹ûÄã³¢ÊÔ½«¶à¸öÑ¡Ïî×éºÏÔÚÒ»¸ö²ÎÊýÖУ¬Õ⽫²»¹¤×÷£º

$ ./test17 -ac -ac is not an option $

ÔÚLinuxÖÐÕâÊÇÒ»ÖÖ³£¼ûµÄ½áºÏÑ¡ÏîµÄ×ö·¨£¬Èç¹ûÄãµÄ½Å±¾ÊÇÓû§ÓѺõģ¬ÄãҪΪÄãµÄÓû§ÌṩÕâÒ»¹¦ÄÜ¡£ÐÒÔ˵ÄÊÇ£¬»¹ÓÐÁíÒ»ÖÖ·½·¨¿ÉÒÔ°ïÖúÎÒÃÇ¡£

Using the getopt command£¨Ê¹ÓÃgetoptÃüÁ

getoptÃüÁîÊÇ´¦ÀíÃüÁîÐÐÑ¡ÏîºÍ²ÎÊýµÄÒ»¸öºÜºÃµÄ¹¤¾ß¡£Ëü½«¸üÈÝÒ×ÔÚÄãµÄ½Å±¾ÖзÖÎöÃüÁîÐвÎÊý¡£ The command format£¨ÃüÁî¸ñʽ£©

getoptÃüÁî¿ÉÒÔÁгöÈκÎÐÎʽµÄÃüÁîÐÐÑ¡ÏîºÍ²ÎÊý£¬²¢ÇÒ×Ô¶¯°ÑËüÃÇת»»³ÉÊʵ±µÄ¸ñʽ¡£ËüʹÓÃÃüÁî¸ñʽ£º

getopt options optstring parameters

Ëü¶¨ÒåÁËÃüÁîÐÐÖÐʹÓõÄÓÐЧѡÏî¡£Ëü»¹¶¨ÒåÁËÄÄЩѡÏîÐèÒªÒ»¸ö²ÎÊýÖµ¡£

Ê×ÏÈ£¬Áгöÿһ¸öÄãÒªÔÚÄãµÄ½Å±¾ÖÐʹÓõÄÃüÁîÐÐÑ¡ÏȻºó£¬ÔÚÐèÒª²ÎÊýÖµµÄÑ¡Ïîºó·ÅÖÃÒ»¸öðºÅ¡£ ÕâÊÇÒ»¸ö¼òµ¥µÄÀý×Ó£º

$ getopt ab:cd -a -b test1 -cd test2 test3 -a -b test1 -c -d -- test2 test3 $

optstring¶¨ÒåÁËËĸöÓÐЧµÄÑ¡ÏîµÄ×Öĸ£¬A£¬B£¬C£¬D¡£Ëü»¹¶¨ÒåÁËÑ¡ÏîBÐèÒªÒ»¸ö²ÎÊýÖµ¡£µ±getoptÃüÁîÔËÐÐʱ£¬Ëü¼ì²éÌṩµÄ²ÎÊýÁÐ±í¡£

Èç¹ûÄãÖ¸¶¨µÄÒ»¸öÑ¡Ïî²»ÔÚoptstring£¬Ä¬ÈÏÇé¿öÏÂgetoptÃüÁî²úÉúÒ»¸ö´íÎóÐÅÏ¢£º

$ getopt ab:cd -a -b test1 -cde test2 test3 getopt: invalid option -- e -a -b test1 -c -d -- test2 test3 $

Èç¹ûÄãÄþÔ¸ºöÂÔ´íÎóÐÅÏ¢£¬Ê¹ÓÃ-qÑ¡ÏîµÄÃüÁ

$ getopt -q ab:cd -a -b test1 -cde test2 test3 -a -b ¡¯test1¡¯ -c -d -- ¡¯test2¡¯ ¡¯test3¡¯ $

×¢Ò⣬getoptÃüÁîÑ¡Ïî±ØÐëÁÐÔÚoptstring֮ǰ¡£ÏÖÔÚÄãÓ¦¸Ã¿ÉÒÔ×¼±¸ºÃÔÚÄãµÄ½Å±¾ÖÐʹÓÃÕâ¸öÃüÁî´¦ÀíÃüÁîÐÐÑ¡Ïî¡£

Using getopt in your scripts£¨ÔÚÄãµÄ½Å±¾ÖÐʹÓÃgetopt£© Äú¿ÉÒÔʹÓýű¾getoptÃüÁî¸ñʽµÄÈκÎÃüÁîÐÐÑ¡Ïî»ò²ÎÊýÊäÈë½Å±¾¡£ÕâÓе㼬ÊÖ£¬µ«¿ÉÒÔʹÓá£

¾÷ÇÏÊÇÓøñʽ»¯µÄ°æ±¾Ìæ»»ÏÖÓÐgetoptÃüÁîÉú³ÉÃüÁîÐÐÑ¡ÏîºÍ²ÎÊý¡£×öÕâ¸öµÄ·½·¨ÊÇʹÓü¯ºÏÃüÁî¡£

ÔÚµÚ5ÕÂÖУ¬Äã¿´µ½ÁËÉèÖõÄÃüÁî¡£Ôڽű¾ÖеIJ»Í¬µÄ±äÁ¿ÉèÖÃÃüÁîµÄ¹¤×÷¡£5ÕÂչʾÁËÈçºÎʹÓü¯ºÏÃüÁîÀ´ÏÔʾËùÓеÄϵͳ»·¾³±äÁ¿¡£ÉèÖÃÃüÁîµÄÑ¡ÏîÖ®Ò»ÊÇË«³å¡£

È»ºó£¬¾÷ÇÏÊǽ«Ô­Ê¼½Å±¾ÃüÁîÐвÎÊýgetoptÃüÁȻºóË͸øÉèÖÃÃüÁîºÍ¸ñʽ»¯ºÃµÄgetoptÈ¡´úÔ­À´µÄÃüÁîÐвÎÊýgetoptÃüÁîµÄÊä³ö¡£Õâ¿´ÆðÀ´ÏñÕâÑù£º

set -- `getopts -q ab:cd \

ʹÓÃÕâÖÖ¼¼Êõ£¬ÎÒÃÇÏÖÔÚ¿ÉÒÔ±àд½Å±¾À´´¦ÀíÎÒÃǵÄÃüÁîÐвÎÊý£º

$ cat test18 #!/bin/bash

# extracting command line options and values with getopt

set -- `getopt -q ab:c \while [ -n \

do

case \

-a) echo \-b) param=\

echo \the -b option, with parameter value $param\shift ;;

-c) echo \--) shift break;;

*) echo \Esac shift done count=1

for param in \do

echo \count=$[ $count + 1 ] done $

Äã»á×¢Òâµ½£¬ÕâÓëtest17µÄ½Å±¾ÊÇ»ù±¾ÏàͬµÄ¡£Î¨Ò»¸Ä±äµÄÊÇgetopt

ËÑË÷¸ü¶à¹ØÓÚ£º linuxѧϰ±Ê¼Ç µÄÎĵµ
linuxѧϰ±Ê¼Ç.doc ½«±¾ÎĵÄWordÎĵµÏÂÔØµ½µçÄÔ£¬·½±ã¸´ÖÆ¡¢±à¼­¡¢ÊղغʹòÓ¡
±¾ÎÄÁ´½Ó£ºhttps://www.diyifanwen.net/c9b1bn197c08njyy26yqz6tzp834d3b018qx_12.html£¨×ªÔØÇë×¢Ã÷ÎÄÕÂÀ´Ô´£©
ÈÈÃÅÍÆ¼ö
Copyright © 2012-2023 µÚÒ»·¶ÎÄÍø °æÈ¨ËùÓÐ ÃâÔðÉùÃ÷ | ÁªÏµÎÒÃÇ
ÉùÃ÷ :±¾ÍøÕ¾×ðÖØ²¢±£»¤ÖªÊ¶²úȨ£¬¸ù¾Ý¡¶ÐÅÏ¢ÍøÂç´«²¥È¨±£»¤ÌõÀý¡·£¬Èç¹ûÎÒÃÇ×ªÔØµÄ×÷Æ·ÇÖ·¸ÁËÄúµÄȨÀû,ÇëÔÚÒ»¸öÔÂÄÚ֪ͨÎÒÃÇ£¬ÎÒÃǻἰʱɾ³ý¡£
¿Í·þQQ£ºxxxxxx ÓÊÏ䣺xxxxxx@qq.com
ÓåICP±¸2023013149ºÅ
Top