У меня есть два теста в 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, чтовызывает различия?