這篇文章給大家介紹$*與$@中Shell中有什么區(qū)別,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
當 $* 和 $@ 不被雙引號" "包圍時,它們之間沒有任何區(qū)別,都是將接收到的每個參數(shù)看做一份數(shù)據(jù),彼此之間以空格來分隔。
但是當它們被雙引號" "包含時,就會有區(qū)別了:
"? " 會 將 所 有 的 參 數(shù) 從 整 體 上 看 做 一 份 數(shù) 據(jù) , 而 不 是 把 每 個 參 數(shù) 都 看 做 一 份 數(shù) 據(jù) 。 " *"會將所有的參數(shù)從整體上看做一份數(shù)據(jù),而不是把每個參數(shù)都看做一份數(shù)據(jù)。 "?"會將所有的參數(shù)從整體上看做一份數(shù)據(jù),而不是把每個參數(shù)都看做一份數(shù)據(jù)。"@"仍然將每個參數(shù)都看作一份數(shù)據(jù),彼此之間是獨立的。
比如傳遞了 5 個參數(shù),那么對于"? " 來 說 , 這 5 個 參 數(shù) 會 合 并 到 一 起 形 成 一 份 數(shù) 據(jù) , 它 們 之 間 是 無 法 分 割 的 ; 而 對 于 " *"來說,這 5 個參數(shù)會合并到一起形成一份數(shù)據(jù),它們之間是無法分割的;而對于"?"來說,這5個參數(shù)會合并到一起形成一份數(shù)據(jù),它們之間是無法分割的;而對于"@"來說,這 5 個參數(shù)是相互獨立的,它們是 5 份數(shù)據(jù)。
如果使用 echo 直接輸出"? " 和 " *"和"?"和"@"做對比,是看不出區(qū)別的;但如果使用 for 循環(huán)來逐個輸出數(shù)據(jù),立即就能看出區(qū)別來。
示例
#!/bin/bash echo "-- \$* 演示 ---" for i in "$*"; do echo $i done echo "-- \$@ 演示 ---" for i in "$@"; do echo $i done
執(zhí)行腳本,輸出結果如下所示:
$ chmod +x test.sh
$ ./test.sh 1 2 3
-- $* 演示 ---
1 2 3
-- $@ 演示 ---
1
2
3
關于$*與$@中Shell中有什么區(qū)別就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
網(wǎng)頁名稱:$*與$@中Shell中有什么區(qū)別-創(chuàng)新互聯(lián)
本文來源:http://chinadenli.net/article44/dchdhe.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、外貿(mào)建站、外貿(mào)網(wǎng)站建設、網(wǎng)站改版、企業(yè)網(wǎng)站制作、App開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容