2013-06-26 53 views
0

我想一個假設CMDOUTPUT將是有益的:可以告訴shell保存命令輸出嗎?

locate -r 'regexp...' # locate finds a file: /myfile. 
         # Shell puts `/myfile' string into CMDOUTPUT 
vim $CMDOUTPUT   # No need to run locate again as with: vim `!!` 

以上locate命令只是一個例子。我希望輸出保存爲所有命令,我運行,以便如果我需要它,我可以快速訪問它。 (輸出應該仍然被命令到標準輸出打印。)我不想做

CMDOUTPUT="$(...)" 

command | tee /tmp/cmdoutput 

或其他任何必須做,因爲這是更多的打字對於我提示所有我運行的內容:我希望shell在後臺完成所有操作。再次說明一點:我隨便輸入命令並決定「哦,我想用這個命令中最後一個命令的輸出,讓我只需檢索它......」。我可以告訴外殼以某種方式存儲輸出,以便我可以檢索它。

如果沒有它的選擇,是否有某種方式可以實現,它儘可能接近隱形,這意味着命令的退出代碼不會丟失(...而這就是我能想到的的,但我相信還有其他的微妙之處)等等。我主要是想到zsh,但任何shell的答案都是有用的。

+0

沒有嘗試'找到-r「正則表達式...」> result.txt' –

+0

@VBB:只是要清楚,定位命令僅僅是一個例子。我希望爲我運行的_every_命令保存輸出。我不想自己做這個重定向,因爲:1)更多的打字給我,2)我不得不擔心打破文件等等,這對我來說更重要。我會更新這個問題。 – Zorawar

+0

所以你想看到_and_保存還是隻保存? –

回答

0

我找到了一個解決方案,不知道這是否正是你想要的。但也應該提供一個開始:)

zsh | tee log >&1 
+0

不是一個壞主意,但可能比它的價值更麻煩。首先,提示也會被捕獲,所以我必須讓shell在命令自身修剪/刪除日誌文件之前運行一些函數,其次,當然,我必須退出兩次以關閉終端(這會刺激我)。我大概可以實現前者,但是_tricks_否定第二個問題可能更危險。 – Zorawar

相關問題