如何在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] ... 在第二次尝试中,我认为添加eval可能会有所帮助: IFS='\n' array_of_lines=$(eval my_command); 但我得到的结果与没有它时完全相同。 最后,按照zsh中带空格的List元素的答案,我还尝试了使用参数扩展标志,而不是IFS告诉zsh如何拆分输入并将元素收集到数组中,即: array_of_lines=("${(@f)$(my_command)}"); 但我仍然得到相同的结果(发生n) 有了这个,我有以下问题: Q1。有哪些“适当”的方式来收集多行代码中的命令输出? Q2。如何指定IFS仅在换行符上分割? Q3。如果我在上面的第三次尝试中使用参数扩展标志(即使用@f)来指定拆分,则zsh是否会忽略IFS?的值?为什么上面没有用?