2017-01-27 77 views
0

登錄命令我用各種工具的bash做一些數據分析和每一個現在,然後我輸入類似執行和在bash

>some_command -with -complicated -arguments 

我經常立刻跟進

>echo "some_command -with -complicated -arguments" >> mylog.txt 

有沒有辦法一次完成這一切?點擊向上箭頭是一種痛苦,加上echo和引號。

我不想登錄我的整個會話,我應該補充說,因爲會有很多不值得記錄的東西。

+1

查看'history'命令以及.bash_history文件 – CoconutBandit

+2

跨站點複製:http://unix.stackexchange.com/questions/38072/how-can-i-save-the-last-command對一個文件 –

+1

本地非常接近重複(回答其他人使這個問題的答案顯而易見):http://stackoverflow.com/questions/40715729/linux-store-last-command-into-variable –

回答

0

繼文獻指出,由查爾斯·達菲,我結束了加入這個對我的.bashrc:

logit() { 
    fc -ln -1 | sed '1s/^[[:space:]]*//' >> ${1:-commands.txt} 
} 

所以logit本身將在最後一個命令添加到commands.txt,並且logit myfile將增加最後的命令爲myfile

0
​​3210
+1

這將記錄'-foo「bar baz」'與' -foo酒吧baz'。 –

+1

如果您只需要用戶運行命令的語義等同性,請考慮:'verbose(){local cmd_q; printf -v cmd_q'%q'「$ @」; printf'%s \ n'「$ {cmd_q%}」>> mylogfile; 「$ @」; } - 但這只是語義等價,不是確切的文本(也就是說,「詳細的貓」 - 「$(something)」>別處不會記錄重定向*或者*知道它是輸出用於在所述重定向之前形成最後一個參數的'something')。 –

+0

是的,這是一個問題。例如'sed -i「s/Alice/Bob/g」test.txt「被記錄爲'sed -i s/Alice/Bob/g test.txt'。我想要存儲確切的原始命令。 –