"$@"
先ほど読み始めましたが、配列の要素を具体的"$*"
に指すことが可能かどうか疑問に思います。"$@"
ループを使用せずにループ内の要素番号3を選択できるようにしたいです"$@"
。これ"$1+@"
や同様の方法がありますか?すでに知っているが、について"${1}"
具体的に知りたいです。検索してみましたが、これに関連するコンテンツが見つかりませんでした。"$@"
"$*"
答え1
位置パラメータは配列ではありません。
設定する方法はを介してですset
。他の配列にはこれは必要ありません。
$ set -- one two t33 f44
$ printf '%s\n' "$@"
one
two
t33
f44
ただし、少なくともbash(およびkshとzsh)では簡単に選択できます。
$ set -- one two t33 f44
$ echo "${@:2:1}"
two
$ echo "${@:2:2}"
two t33
答え2
$@
配列ではありません。これはパラメータのリストです。 Bashでは、配列を作成してその中の値で初期化し、$@
インデックスを使用できます。
declare -a foo=($@)
echo ${foo[2]}
配列の索引付けは0から始まるので、上記は3番目の引数をスクリプトに出力します。
答え3
本質的にはできません。問題は$*
ところがそうでは$@
ありません。ソート;簡単変わりやすい。したがって、インデックスを作成できません。
その値は単なる文字列であり、わずかに異なる方法で定義されます。などを使用する$1
と、$2
個々のコンポーネントにアクセスできます。