使用bash中先前命令的输出

Har*_*rsh 9 linux bash shell

在Mathematica中,可以使用%重用上一个命令的输出.

bash(或其他一些shell)有类似的东西吗?

例如,我运行一个make,它会发出警告,但我想找到所有警告.所以,我输入

make | grep "warning"
Run Code Online (Sandbox Code Playgroud)

但是我无法看到make的输出.

我想输入这样的东西:

make
% | grep "warning"
Run Code Online (Sandbox Code Playgroud)

Car*_*icz 13

由于输出量是不确定的,因此bash将其存储为您重新显示是没有意义的.但是有一个替代解决方案可以解决您的问题:

tee命令允许您将输出流复制到文件.因此,如果您愿意使用文件进行临时存储,可以执行以下操作:

make | tee output.txt
grep "warning" output.txt
Run Code Online (Sandbox Code Playgroud)

该解决方案避免了make两次运行,这可能是(a)昂贵且(b)不一致:第二次制造可能比第一次制作工作少,因为一些目标已经是第一次制作.

注意:我没试过这个.您可能需要摆弄加入错误和输出流等.