![](/img/trans.png)
[英]What's the difference between ${varname} and $varname in a shell scripts
[英]What is the difference between $@ and $* in shell scripts?
在 shell 腳本中, $@
和$*
之間有什么區別?
哪一種是獲取腳本參數的首選方法?
不同的 shell 解釋器之間是否存在差異?
與我的 POV 的一個主要區別是“$@”保留了原始參數數量。 這是唯一的形式。 出於這個原因,使用腳本傳遞參數非常方便。
例如,如果文件 my_script 包含:
#!/bin/bash
main()
{
echo 'MAIN sees ' $# ' args'
}
main $*
main $@
main "$*"
main "$@"
### end ###
我像這樣運行它:
my_script 'a b c' d e
我會得到這個輸出:
MAIN 看到 5 個參數
MAIN 看到 5 個參數
MAIN 看到 1 個參數
MAIN 看到 3 個參數
$@ 每個參數都是一個帶引號的字符串。 否則它的行為相同。
請參閱: http : //tldp.org/LDP/abs/html/internalvariables.html#APPREF
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.