0

私は2つのテストケースを持っていますzsh

  1. A. 引用符なし

    ~$ y=(${(f)$(echo -e "a b\nc d")}); printf "<%s>\n" "${y[@]}"
    <a b c d>
    
  2. B. 引用符付き

    ~$ y=(${(f)"$(echo -e "a b\nc d")"}); printf "<%s>\n" "${y[@]}"
    <a b>
    <c d>
    

ただし、最初にの出力をecho変数に割り当てると、引用符は何の効果もありません。

  1. C. 引用符なし

    ~$ x=$(echo -e "a b\nc d"); y=(${(f)${x}}); printf "<%s>\n" "${y[@]}"
    <a b>
    <c d>
    
  2. D. 引用符付き

    ~$ x=$(echo -e "a b\nc d"); y=(${(f)"${x}"}); printf "<%s>\n" "${y[@]}"
    <a b>
    <c d>
    

質問:

  1. A と B を比較すると、違いの原因は何ですか?
  2. A と C を比較すると、違いの原因は何ですか?
4

1 に答える 1