有沒有一種快速而骯髒的方法不僅可以記錄 shell 檔案的輸出,還可以記錄其中使用的命令?
例如:
whoami > who.dmp
將輸出一個包含以下內容的文件:
my_username
對於較長的 shell 文件,在日誌文件中顯示導致結果的命令的最有效方法是什麼
前任:
log.txt
###############
echo whoami <- I want this to show in the file as well
my_username
time <- I want this to show in the file as well
real 0m0.00s
user 0m0.00s
sys 0m0.00s
有沒有一種方法可以做到這一點,而無需每次都將命令硬編碼到輸出檔案中?
答案1
使用內建的 shellset -x
可能是執行此操作的廉價且骯髒的方法。在 shell 腳本中你常常會看到這樣的一行:
#set -x
有人只是透過註解掉了它。我認為您可以在互動式命令列中使用它,但您可能不喜歡它在那裡的作用。
答案2
您可以查看該script
工具,它將保存整個終端會話,直到您退出您呼叫的程式(預設為 shell)。範例用例:
~/:$ 腳本測試.輸出 腳本啟動,輸出檔為test.output ~/:$ mkdir 例 ~/:$ cd 範例 ~/example/:$ touch new\ file.txt 〜/範例:/$ ls 新文件.txt 〜/範例:/$退出
該文件的內容test.output
將如下所示:
劇本於 2012 年 6 月 25 日星期一 16:24:28 開始 ~/:$ mkdir 例 ~/:$ cd 範例 ~/example/:$ touch new\ file.txt 〜/範例/:$ ls 新文件.txt ~/example/:$ 退出請注意,該文件是完全的終端記錄,因此任何退格鍵都會顯示為劇本於 2012 年 6 月 25 日星期一 16:24:41 完成
^H
或^?
(或任何終端的退格鍵)。