zshで行の配列を適切に収集する方法
私は次のように出力my_commandを行の配列にグループ化すると思いました: IFS='\n' array_of_lines=$(my_command); その結果は、$array_of_lines[1]出力の最初の行を参照することになるmy_command、$array_of_lines[2]等々第二に、そして。 ただし、上記のコマンドはうまく機能しないようです。で確認したようにmy_command、文字の周りの出力も分割するようです。私もこれをチェックしました:nprint -l $array_of_lines echo $array_of_lines[1] echo $array_of_lines[2] ... 2回目の試みでは、追加するevalことが役立つと考えました: IFS='\n' array_of_lines=$(eval my_command); しかし、それがない場合とまったく同じ結果が得られました。 最後に、zshにスペースがあるList要素に関する回答に続いてIFS、入力を分割して要素を配列に収集する方法をzshに指示する代わりに、パラメーター拡張フラグを使用することも試みました。 array_of_lines=("${(@f)$(my_command)}"); しかし、私はまだ同じ結果を得ました(分割が起こっていますn) これに関して、次の質問があります。 Q1。何で「適切な」行の配列内のコマンドの出力を収集する方法は? Q2。IFS改行のみで分割するように指定するにはどうすればよいですか? Q3。上記の3番目の試み(つまりを使用@f)でパラメータ拡張フラグを使用して分割を指定する場合、zshはIFS?の値を無視しますか?なぜそれが上で機能しなかったのですか?