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