有什么方法可以缓冲或将最后一个命令的输出保存到变量中?例如:
% long_running_command
<long output>
<long output>
<long output>
<long output>
<long output>
<long output>
% <oops! I realize I wanted to do a wc -l>
% long_running_command | wc -l
(wait a lot of time)
我想要类似的东西:
% long_running_command
<long output>
<long output>
<long output>
<long output>
<long output>
<long output>
% <oops! I realized I need the output, so I do the following>
% echo "$LASTOUTPUT" | wc -l
1586
有这样的事吗?
答案1
为什么不将这个长命令的输出重定向到一个文件,然后使用wc -l
?
long_running_command > output.txt
wc -l output.txt
或者也许将此命令的输出存储到变量中,然后echo
将其存储到wc
。
LASTOUTPUT="$(long_running_command)"
wc -l <<< $LASTOUTPUT