たぶんこれは愚かな質問かもしれませんが、2時間インターネット検索をしても意味のある結果が出ませんでした。
簡単に言えば、Bashには次の違いがあります。
X="
a
b
c
"
そして
X=(
a
b
c
)
前者は変数の定義に従い、後者は配列の定義に従う。
配列は多要素変数なので、前者もすべての目的のための配列です。
前者が配列の場合(a)二重引用符と(b)角括弧の唯一の動作上の違いは、配列要素の引用規則の動作ですか?
どんな洞察力でもいただきありがとうございます。
ベストアンサー1
いいえ、前者は配列ではありません。
たとえば、インデックスを使用してメンバーを選択することはできません。
arr=(a b c)
echo "${arr[1]}" # b
配列を使用してパラメータを渡すことはできますが、文字列は渡すことはできません。より良い結果を得るには、スペースを含む要素を使用してください。
arr=(a 'b c' d)
printf '(%s)\n' "${arr[@]}"
string=$'\nm\nn o\np\n'
printf '(%s)\n' $string
出力:
(a)
(b c)
(d)
(m)
(n)
(o)
(p)
man bash
2つの変数タイプの説明が含まれており、インターネット検索は必要ありません。