如何保存终端最后执行的命令的输出?

如何保存终端最后执行的命令的输出?

我的项目有一个增量构建命令,如果我执行干净构建,它将输出一些内容,如果我执行增量构建,则输出其他内容(更少)。

mycommand.sh如果我已经运行了一个干净的构建并且输出打印在终端窗口上(不使用复制和粘贴),我该如何保存它?

我忘了做

mycommand.sh > myfile.txt

或者

mycommand.sh >> myfile.txt

用于将输出保存到文件中。

答案1

虽然$(!!)或重新运行上一个命令可能看起来(或有时是)一个解决方案,但它也有其缺点,您必须完全了解使用它。

示例:如果命令做了一些修改,例如

rm -rv /tmp/*

就可以了,然后以任何方式重新运行该命令就可以不是产生与之前相同的输出,但如果 /tmp/ 在第一次运行之前为空并且第二次仍然为空,则输出应该相同。

底线:没有安全的如果在执行命令时未保存最后一个命令的输出,则可以重用或保存(无需复制和粘贴)该输出。

答案2

你不能,因为 bash 不会将任何输出分配给任何参数或其内存上的任何块。

但是,您可以$(!!)使用重新计算(不重复使用)最后一个命令的输出。

单独!!执行最后一个命令。

$ echo pierre
pierre
$ echo my name is $(!!)
echo my name is $(echo pierre)
my name is pierre

来源:重用 Bash 中最后一个命令的输出

相关内容