如何保存終端最後執行的命令的輸出?

如何保存終端最後執行的命令的輸出?

我的專案有一個增量構建命令,如果我執行乾淨構建,它將輸出一些內容,如果我執行增量構建,則輸出其他內容(更少)。

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 中最後一個指令的輸出

相關內容