シェルスクリプトで$^@(ドルカラット)とはどういう意味ですか?

シェルスクリプトで$^@(ドルカラット)とはどういう意味ですか?

パラメータ拡張への参照が見つかりましたが、それが何で$^@あるかを説明するものはありません。コンテキストでは、例えば~/$^@に拡張するためのものだと思います~/$1 ~/$2 ...が、確かではなく、確認も見つかりません。説明に加えて、この拡張機能の名前とそれに関するドキュメントリンク(可能な場合)を知りたいです。ありがとうございます!

編集:これはzshにのみ当てはまると聞きました。誰でもより多くの情報を持っている場合は、お知らせください。

ベストアンサー1

zshシェルでは、配列(たとえば)はfoo${^array}bar文字列、および:の代わりに(中括弧拡張と同様に)拡張されます。array(a b c)fooabarfoobbarfoocbarfooabcbar

$ 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

~/$^@同じです~/${^@}。または、位置引数のリスト(通常は現在のスクリプトまたはシェル関数の引数、または上記の組み込み$@ユーティリティを使用して${@}設定された文字列)です。set

zshallマニュアルで検索してみてくださいRC_EXPAND_PARAM。拡張機能は元のものから来ることができます。rcシェル

おすすめ記事