我想运行一个find
命令,然后计算输出的行数并给出结果的输出。我的直接方法是这样的:
output=$(find ...)
lines=$(echo "$output" | wc -l)
echo "$output"
但不幸的是,使用echo
管道将其wc
添加到换行符中,因此即使find
没有找到任何内容(零行输出),wc
也会发出1
(对于echo
附加的换行符。
我将其更改echo
为 a以防止将换行符附加到输出中,但类似printf
的单行输出也没有换行符,因此给出了 out 。find
var/
wc
0
问题在于捕获输出 ( $(...)
)。它去除了在我的情况下相关的尾随换行符。
可以以某种方式防止这种情况吗?
我的原始任务有完全不同的方法吗?