zsh:在命令替换中计算行数

zsh:在命令替换中计算行数,zsh,Zsh,我想计算命令替换$(blah)使用zsh而不是通过wc-l管道生成的行数。我知道如何将命令替换行转换为数组,如下所示: blah_output=(${(f)"$(blah)"}) …计算数组中的项目数就是这样: ${#blah_output} 我的问题是:如果没有中间变量,如何在一个表达式中实现这一点?在做了一些修改之后,我想到了这个: ${#${(f)"$(blah)"}} …除非blah只返回一行,否则它将运行,此时它将返回该行中的字符数,我不明白为什么或如何修复它。真正的答案是什么?

我想计算命令替换
$(blah)
使用zsh而不是通过
wc-l
管道生成的行数。我知道如何将命令替换行转换为数组,如下所示:

blah_output=(${(f)"$(blah)"})
…计算数组中的项目数就是这样:

${#blah_output}
我的问题是:如果没有中间变量,如何在一个表达式中实现这一点?在做了一些修改之后,我想到了这个:

${#${(f)"$(blah)"}}
…除非
blah
只返回一行,否则它将运行,此时它将返回该行中的字符数,我不明白为什么或如何修复它。真正的答案是什么?有吗

分问题:

  • 在创建初始数组时,我不理解为什么需要外圆括号;我预计拆分将意味着一个数组值

  • 我不明白为什么有必要引用
    $(废话)
    ;如果我不包括它们,我会得到一个元素,其中换行符被转换成一个空间。关于一个隐式单词拆分然后连接