我有两个测试用例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,是什么导致了差异?