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