Bash の $@ とは何ですか? [重複] 質問する

Bash の $@ とは何ですか? [重複] 質問する

シェル スクリプトのハンドルは$@、スクリプトに渡されるすべての引数の配列であると考えます。これは本当ですか?

普段は検索エンジンを使って情報収集しているのですが、グーグルで検索できず$@、何でも簡単に見つかるということに慣れてしまっているので、質問させてください。

ベストアンサー1

はい。Bash のマニュアルページ(最初にアクセス)特別なパラメータの下:

特別なパラメータ

シェルはいくつかのパラメータを特別に扱います。これらのパラメータは参照のみ可能であり、割り当ては許可されません。

*1 から始まる位置パラメータに展開されます。展開が二重引用符内で行われる場合、各パラメータの値が IFS 特殊変数の最初の文字で区切られた単一の単語に展開されます。つまり、 は"$*"と同等です。ここで、"$1c$2c..."cIFS 変数の値の最初の文字です。IFS が設定されていない場合、パラメータはスペースで区切られます。IFS が null の場合、パラメータは区切り文字を介さずに結合されます。

@位置パラメータに展開します。展開は 1 から始まります。展開が二重引用符内で発生する場合、各パラメータは別々の単語に展開されます。つまり、は..."$@"と同等です。"$1" "$2"二重引用符で囲まれた展開が単語内で発生する場合、最初のパラメータの展開は元の単語の先頭部分と結合され、最後のパラメータの展開は元の単語の最後の部分と結合されます。位置パラメータがない場合、"$@"$@何も展開されません (つまり、削除されます)。

おすすめ記事