私は2つのテストケースを持っていますzsh
A. 引用符なし
~$ y=(${(f)$(echo -e "a b\nc d")}); printf "<%s>\n" "${y[@]}" <a b c d>
B. 引用符付き
~$ y=(${(f)"$(echo -e "a b\nc d")"}); printf "<%s>\n" "${y[@]}" <a b> <c d>
ただし、最初にの出力をecho
変数に割り当てると、引用符は何の効果もありません。
C. 引用符なし
~$ x=$(echo -e "a b\nc d"); y=(${(f)${x}}); printf "<%s>\n" "${y[@]}" <a b> <c d>
D. 引用符付き
~$ x=$(echo -e "a b\nc d"); y=(${(f)"${x}"}); printf "<%s>\n" "${y[@]}" <a b> <c d>
質問:
- A と B を比較すると、違いの原因は何ですか?
- A と C を比較すると、違いの原因は何ですか?