zsh - zsh:计算命令替换中的行数
问题描述
我想计算$(blah)
使用 zsh 而不是管道通过的命令替换生成的行数wc -l
。我知道如何将命令替换行转换为数组,如下所示:
blah_output=(${(f)"$(blah)"})
…计算数组中的项目数就是这样:
${#blah_output}
我的问题是:如果没有中间变量,我怎么能在一个表达式中做到这一点?经过一番摆弄,我想出了这个:
${#${(f)"$(blah)"}}
…除非blah
只返回一行,否则它会返回该行中的字符数,我不明白为什么或如何解决它。真正的答案是什么?有吗?
子问题:
创建初始数组时,我不明白为什么需要外括号;我预计拆分将意味着一个数组值。
我不明白为什么周围的引号
$(blah)
是必要的;如果我不包括它们,我会得到一个将换行符转换为空格的元素。关于隐式单词拆分然后加入的事情?