顯示執行的命令以及日誌檔案中的輸出

顯示執行的命令以及日誌檔案中的輸出

有沒有一種快速而骯髒的方法不僅可以記錄 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^?(或任何終端的退格鍵)。

相關內容