在我們初學linux系統shell時,可能會感覺$@與$*沒什么區別,如下面shell腳本:
#!/bin/bash
# name:a.sh # echo 'this script $* is: '$* echo 'this script $@ is: '$@
執行結果表面上是一樣的、如下圖所示:
其實$*和$@還有一些區別的
$*(強調整體) //所有參數列表,代表"$1 $2 … $n",即當成一個整體輸出,每一個變量參數之間以空格隔開。
$@(強調獨立) //所有參數列表,代表"$1" "$2" … "$n" ,即每一個變量參數是獨立的 。也是全部輸出。
我們可以在for語句中使用雙引號""看出兩個變量的區別,shell腳本如下:
#!/bin/bash # script name:b.sh author:qq5201351 # for i in "$*";do echo $i done echo "=================" for i in "$@";do echo $i done
執行結果如下所示,由結果可見$@每一個參數都是獨立的,所以在進行迭代時,也是單獨輸出的。
尊重別人的勞動成果 轉載請務必注明出處:http://www.cnblogs.com/5201351/p/4590811.html