linux系統中關於shell變量$*與$@的區別


在我們初學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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM