·½·¨¡£ËüÊÇÒ»¸öºÃÖ÷ÒâÓÃÀ´¼ì²éÄãµÄ²ÎÊý£¬ÒÔÈ·±£ÔÚʹÓÃËüÃÇ֮ǰȷʵÓÐÊý¾Ý£º
$ cat test7 #!/bin/bash
# testing parameters before use if [ -n \then
echo Hello $1, glad to meet you. else
echo \¡¯t identify yourself.\Fi
$ ./test7 Rich
Hello Rich, glad to meet you. $ ./test7
Sorry, you didn¡¯t identify yourself. $
ÔÚÕâ¸öÀý×ÓÖУ¬ÎÒʹÓÃ-n²ÎÊý²âÊÔÃüÁîÀ´¼ì²éÃüÁîÐвÎÊýÊÇ·ñÓÐÊý¾Ý¡£ÔÚÏÂÒ»½ÚÖУ¬Äã»á¿´µ½ÓÐÁíÒ»ÖÖ·½Ê½À´¼ì²éÃüÁîÐвÎÊý¡£
Special Parameter Variables£¨ÌØÊâ²ÎÊý±äÁ¿£©
ÔÚbash shellÃüÁîÐвÎÊýÖÐÓÐÒ»Ð©ÌØÊâµÄ±äÁ¿¡£Õⲿ·ÖÃèÊöÁËËûÃÇÊÇʲô£¬ÒÔ¼°ÈçºÎʹÓÃËüÃÇ¡£
Counting parameters£¨¼ÆÊý²ÎÊý£©
¾ÍÏñÄãÔÚÉÏÒ»½Ú¿´µ½µÄ£¬Ëüͨ³£ÊÇÒ»¸öºÃÖ÷Ò⣬ÔÚÄãʹÓÃÃüÁîÐвÎÊý֮ǰÏÈÑéÖ¤Ò»ÏÂËüÃÇ¡£¶ÔÓÚʹÓöà¸öÃüÁîÐвÎÊýµÄ½Å±¾£¬ÕâÊÇ·¦Î¶µÄ¡£ Äã¿ÉÒÔÖ»¼ÆËãÃüÁîÐÐÉÏÊäÈëµÄ²ÎÊý£¬¶ø²»ÊDzâÊÔÿ¸ö²ÎÊý¡£bash shellΪ´ËÌṩÁËÒ»¸öÌØÊâµÄ±äÁ¿¡£
$#±äÁ¿°üÀ¨ÃüÁîÐвÎÊýµÄÊýÁ¿µ±½Å±¾ÔËÐеÄʱºò¡£Ôڽű¾ÖеÄÈκεط½£¬Äã¶¼¿ÉÒÔʹÓÃÕâ¸öÌØÊâµÄ±äÁ¿£¬¾ÍÏñÒ»¸öÆÕͨµÄ±äÁ¿£º
$ cat test8 #!/bin/bash
# getting the number of parameters echo There were $# parameters supplied. $ ./test8
There were 0 parameters supplied. $ ./test8 1 2 3 4 5
There were 5 parameters supplied. $ ./test8 1 2 3 4 5 6 7 8 9 10 There were 10 parameters supplied. $ ./test8 \
There were 1 parameters supplied. $
ÏÖÔÚ£¬ÄãÓÐÄÜÁ¦ÔÚ³¢ÊÔʹÓÃËüÃÇ֮ǰ²âÊÔ²ÎÊýµÄÊýÄ¿£º
$ cat test9
#!/bin/bash
# testing parameters if [ $# -ne 2 ] then
echo Usage: test9 a b else
total=$[ $1 + $2 ] echo The total is $total fi $ ./test9 Usage: test9 a b $ ./test9 10 Usage: test9 a b $ ./test9 10 15 The total is 25 $ ./test9 10 15 20 Usage: test9 a b $
If-thenÓï¾äʹÓòâÊÔÃüÁîÀ´Ö´ÐÐÒ»¸öÃüÁîÐÐÌṩµÄ²ÎÊý¸öÊýµÄ²âÊÔ¡£Èç¹ûÕýÈ·µÄ²ÎÊýÊý×Ö²»´æÔÚ£¬Äã¿ÉÒÔÏÔʾ´íÎóÐÅÏ¢£¬¹ØÓÚÕýȷʹÓýű¾µÄ¡£
Õâ¸ö±äÁ¿»¹ÌṩÁËÒ»¸öºÜ¿áµÄ·½Ê½À´×¥È¡ÃüÁîÐÐÉϵÄ×îºóÒ»¸ö²ÎÊý
¶ø²»ÓÃÖªµÀÒ»¹²ÓжàÉÙ²ÎÊý±»Ê¹Óá£È»¶ø£¬ÄãÐèҪʹÓÃÒ»¸öС°ÑÏ·À´´ïµ½Õâ¸öÄ¿µÄ¡£
Èç¹ûÄã˼¿¼ÁËÕâ¸öÎÊÌ⣬Äã¿ÉÄÜ»áÈÏΪ¼ÈÈ»$#°üº¬²ÎÊýµÄÖµ£¬ÄÇô±äÁ¿$ { $ # }½«ÊÇ×îºóÒ»¸öÃüÁîÐвÎÊý±äÁ¿¡£³¢ÊÔһϣ¬¿´¿´»á·¢Éúʲô£º
$ cat badtest1 #!/bin/bash
# testing grabbing last parameter echo The last parameter was ${$#} $ ./badtest1 10
The last parameter was 15354 $
ÍÛ£¬ÕâÀï·¢ÉúÁËʲôÊ£¿ºÜÏÔÈ»£¬·¢ÉúÁËһЩ´íÎó¡£ÔÀ´£¬Äã²»ÄÜ ÔÚÀ¨ºÅÄÚʹÓÃÃÀÔª·ûºÅ¡£Ïà·´£¬Äã±ØÐëÓÐÒ»¸ö·ûºÅÀ´È¡´úÃÀÔª·ûºÅ ¡£ÕâºÜÆæ¹Ö£¬µ«ÓÐÓãº
$ cat test10 #!/bin/bash
# grabbing the last parameter params=$#
echo The last parameter is $params echo The last paramerer is ${!#} $ ./test10 1 2 3 4 5