![zsh:始终缓冲最后一个命令的输出](https://linux22.com/image/1614625/zsh%EF%BC%9A%E5%A7%8B%E7%BB%88%E7%BC%93%E5%86%B2%E6%9C%80%E5%90%8E%E4%B8%80%E4%B8%AA%E5%91%BD%E4%BB%A4%E7%9A%84%E8%BE%93%E5%87%BA.png)
有什么方法可以缓冲或将最后一个命令的输出保存到变量中?例如:
% 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