シェルスクリプトで$ *の意味は何ですか? [コピー]

シェルスクリプトで$ *の意味は何ですか? [コピー]

シェルスクリプトファイルに「$*」と表示されます。これは何を意味し、いつ使用するべきですか?

ベストアンサー1

~からbash(1)

特殊パラメータ

シェルはいくつかのパラメータを特別に扱います。これらのパラメータは参照用にすぎず、そのための割り当ては許可されていません。

* 1から始まる位置パラメータに展開されます。二重引用符内で拡張が発生すると、単一の単語に展開され、各引数の値はIFS特殊変数の最初の文字で区切られます。つまり、cが変数valueの最初の文字と"$*"同じです。設定しないと、パラメータはスペースで区切られます。 nullの場合、パラメータは区切り文字を挿入せずに連結されます。"$1c$2c…"IFSIFSIFS

@ 1から始まる位置パラメータに展開されます。二重引用符内で拡張が発生すると、各引数は別々の単語に展開されます。つまり、"$@"と同じです"$1" "$2" …。単語内で二重引用符拡張が発生すると、最初の引数の拡張は元の単語の先頭に関連付けられ、最後の引数の拡張は元の単語の最後の部分に関連付けられます。位置引数がない場合、"$@"拡張は$@空です(つまり削除されます)。

デフォルトでは、$*値はスクリプト(またはシェル関数)の引数である特殊変数です。ほとんどの場合、"$@"より適しています。

おすすめ記事