The last parameter is 5 The last paramerer is 5 $ ./test10
The last parameter is 0 The last parameter is ./test10 $
ºÜÍêÃÀ£¬Õâ¸ö²âÊÔÖ¸¶¨$#±äÁ¿²ÎÊýµÄ±äÁ¿Öµ£¬È»ºóʹÓøñäÁ¿µÄÌØÊâµÄÃüÁîÐвÎÊý±äÁ¿µÄ¸ñʽ¡£Á½¸ö°æ±¾¶¼¹¤×÷¡£Í¬ÑùÖØÒªµÄÊÇҪעÒâµ½£¬µ±ÃüÁîÐÐûÓÐÈκβÎÊýʱ£¬$#¼ÛֵΪÁ㣬Õâ¾ÍÊDzÎÊý¿É±ä£¬µ«$ {£¡# }±äÁ¿ÔÚÃüÁîÐÐÉÏ·µ»Ø½Å±¾Ãû³Æ¡£
Grabbing all the data£¨×¥È¡ËùÓеÄÊý¾Ý£©
ÓÐʱ£¬Äã»áÏë±éÀúËùÓеÄÌṩµÄÃüÁîÐвÎÊý¡£¶ø²»ÊÇÂÒÓÃ$#±äÁ¿À´È·¶¨¶àÉٵIJÎÊýÊÇÔÚÃüÁîÐÐÖУ¬È»ºó±éÀúËùÓеÄËûÃÇ£¬Äã¿ÉÒÔʹÓÃÒ»Ð©ÌØÊâµÄ±äÁ¿¡£
$ *ºÍ$ @±äÁ¿ÎªÄãµÄËùÓвÎÊýÌṩһվʽ¹ºÎï·þÎñ¡£ÕâÁ½¸ö±äÁ¿°üÀ¨ËùÓеÄÃüÁîÐвÎÊýÔÚÒ»¸öµ¥Ò»µÄ±äÁ¿ÖС£
$ *±äÁ¿°ÑÔÚÃüÁîÐÐÉÏÌṩµÄËùÓвÎÊý¶¼¿´×÷Ò»¸ö×Ö¡£Ã¿Ò»¸öµ¥´Ê¶¼°üº¬ÔÚÃüÁîÐÐÉϳöÏÖµÄÖµ¡£¶ø²»ÊǰѲÎÊý×÷Ϊ¶à¸ö¶ÔÏó£¬$ *±äÁ¿½«ËûÃÇ×÷Ϊһ¸ö²ÎÊýÀ´¶Ô´ý¡£
ÁíÒ»·½Ã棬$ @±äÁ¿£¬ÐèÒª°ÑÃüÁîÐÐÉÏÌṩµÄËùÓвÎÊý×÷Ϊͬһ¸ö×Ö·û´®Öеĵ¥¶ÀµÄµ¥´Ê¡£ËüÔÊÐíÄãͨ¹ýµü´úÖµ£¬·ÖÀë³ö¸÷²ÎÊýÌṩ¡£Õâ
ÊÇ×î¾³£Ê¹ÓõÄÃüÁî¡£
ͨ¹ýʹÓÃÃüÁî±éÀúÌØÊâ±äÁ¿£¬Äã¿ÉÒÔ¿´µ½ËûÃÇÈçºÎµÄ¶Ô´ýÃüÁîÐвÎÊý¡£$ *±äÁ¿´¦ÀíËùÓвÎÊý¶¼ÊÇÒ»¸ö×Ö£¬¶ø$ @±äÁ¿µ¥¶À´¦Àíÿ¸ö²ÎÊý¡£
Being Shifty£¨£©
ÔÚÄãµÄbash shellÖУ¬ÄãµÄÁíÒ»¸ö¹¤¾ßÊÇÊÇÒÆÎ»Ö¸Áî¡£bash shellÌá¹©ÒÆ¶¯ÃüÁîÀ´°ïÖúÎÒÃÇ´¦ÀíÃüÁîÐвÎÊý¡£Ëü½«ÃüÁîÐвÎÊý×ªÒÆµ½Ïà¶ÔλÖá£
µ±ÄãʹÓÃshiftÃüÁËü°Ñ¸÷²ÎÊý±äÁ¿ÏòĬÈϵÄλÖýµµÍÒ»¼¶¡£Òò´Ë£¬±äÁ¿3µÄÖµ±»×ªÒƵ½2£¬2µÄÖµ×ªÒÆµ½1£¬1Öµ±»¶ªÆú£¨×¢Òâ±äÁ¿$ 0£¬³ÌÐòÃû³Æ£¬±£³Ö²»±ä£©¡£
ÕâÊÇÒ»¸öͨ¹ýÃüÁîÐвÎÊýµü´úµÄºÃ·½·¨£¬ÓÈÆäÊÇÈç¹ûÄã²»ÖªµÀÓжàÉÙ²ÎÊý¿ÉÓá£Äã¿ÉÒÔ²Ù×÷µÚÒ»¸ö²ÎÊý£¬È»ºó½«²ÎÊý×ªÒÆµ½µÚÒ»¸ö²ÎÊýÉÏ¡£ ÕâÊÇÒ»¸ö¼ò¶ÌµÄʾÀý£º
¸Ã½Å±¾Ö´ÐÐÒ»¸öÑ»·£¬²âÊÔÁ˵ÚÒ»¸ö²ÎÊýÖµµÄ³¤¶È¡£µ±µÚÒ»¸ö²ÎÊýµÄ
³¤¶ÈΪÁãʱ£¬Ñ»·½áÊø¡£
²âÊÔÍêµÄµÚÒ»¸ö²ÎÊýºó£¬shiftÃüÁîÊÇÓÃÀ´×ªÒÆÒ»¸öλÖõÄËùÓвÎÊý¡£ ÁíÍ⣬Äú¿ÉÒÔͨ¹ýÏòshiftÃüÁîÌṩһ¸ö²ÎÊýÀ´Ö´Ðжà¸öλÖÃÒÆ¶¯¡£Ö»ÒªÌṩÄãÏëÒª¸Ä±äµÄµØ·½£º
$ cat test14 #!/bin/bash
# demonstrating a multi-position shift echo \shift 2
echo \¡¯s the new first parameter: $1\$ ./test14 1 2 3 4 5
The original parameters: 1 2 3 4 5 Here¡¯s the new first parameter: 3 $
ͨ¹ýʹÓÃÒÆÎ»ÃüÁîÖеÄÖµ£¬¿ÉÒÔºÜÈÝÒ×µØÌø¹ý²»ÐèÒªµÄ²ÎÊý¡£
Working With Options£¨Ê¹ÓÃÑ¡Ï
Èç¹ûÄãÒ»Ö±¸úËæÔÚÕâ±¾ÊéÖУ¬Äã¾ÍÒѾ¼û¹ý¼¸¸öbashÃüÁîÌṩ²ÎÊýºÍÑ¡Ïî¡£±¾½ÚÏÔʾÁËÈýÖÖ²»Í¬µÄ·½·¨ÔÚÄãµÄ½Å±¾ÖÐʹÓÃÑ¡Ïî¡£ Finding your options
ÔÚ±íÃæÉÏ£¬ÃüÁîÐÐÑ¡ÏîûÓÐÊ²Ã´ÌØ±ðµÄ¡£ËûÃdzöÏÖÔÚÃüÁîÐÐÉÏ£¬½ô¸úÔڽű¾Ãû³ÆÖ®ºó£¬¾ÍºÍÃüÁîÐвÎÊýÒ»Ñù¡£ÊÂʵÉÏ£¬Èç¹ûÄãÏëÒªµÄ»°£¬
Äã¿ÉÒÔÓô¦ÀíÃüÁîÐвÎÊýͬÑùµÄ·½Ê½À´´¦ÀíÃüÁîÐÐÑ¡Ïî¡£ Processing simple options£¨´¦Àí¼òµ¥µÄÑ¡Ï
ÔÚtest13Äã¿´µ½ÁËÈçºÎʹÓÃshiftÃüÁîÉèÖõĽű¾³ÌÐò¡£Äã¿ÉÒÔʹÓÃͬÑùµÄ¼¼ÊõÀ´²Ù×÷ÃüÁîÐÐÑ¡Ïî¡£
µ±ÄãÌáÈ¡¸÷¸ö²ÎÊýʱ£¬ÓÃcaseÓï¾äÀ´È·¶¨°Ñ²ÎÊý¸ñʽ»¯ÎªÒ»¸öÑ¡Ï
$ cat test15 #!/bin/bash
# extracting command line options as parameters while [ -n \do
case \
-a) echo \-b) echo \-c) echo \*) echo \esac shift done
$ ./test15 -a -b -c -d Found the -a option Found the -b option Found the -c option