Shell-Script
$^@(美元插入符號)在 shell 腳本中是什麼意思?
我找到了參數擴展的參考資料,但沒有一個解釋什麼
$^@
。從上下文來看,我認為它用於將 eg 擴展~/$^@
為~/$1 ~/$2 ...
,但我不確定,也找不到任何確認。除了解釋之外,如果可能的話,我希望知道這個擴展被稱為什麼,以及一個指向它的文件的連結。謝謝!編輯:我被告知這可能是 zsh 特有的。如果有人有更多資訊,請告訴我。
在
zsh
shell 中,foo${^array}bar
數組array
,如(a b c)
,將擴展為fooabar
,foobbar
和foocbar
(就像大括號擴展會擴展)而不是字元串fooa
,b
和cbar
:$ array=(a b c) $ print -rC1 foo${^array}bar fooabar foobbar foocbar $ print -rC1 foo${array}bar fooa b cbar
在您引用的程式碼中,這用於將
~/
(使用者主目錄的路徑名)附加到位置參數列表的每個元素:$ set -- a b c "bumble bee" $ print -rC1 ~/$^@ /home/myself/a /home/myself/b /home/myself/c /home/myself/bumble bee
~/$^@
是一樣的~/${^@}
。$@
or${@}
是位置參數的列表(通常是給目前腳本或 shell 函式的參數,或者使用set
內置實用程序設置的字元串,如上所示)。