Bash
重定向到螢幕和文件
除了將它們列印在螢幕上之外,我還想將我執行的命令的所有輸出重定向到一個文件。
我希望這會自動發生,我不想
tee
每次都這樣做。我試過
exec | tee file
了,但它不起作用。我該怎麼做呢?這是 Bash,所以
PROMPT_COMMAND
也可用。
你可以這樣做:
exec > >(tee logfile) 2>&1
這會將 shell 的輸出和錯誤流重定向到程序替換
>(tee logfile)
,這會將其保存在其中,logfile
同時還將它們輸出到終端。正如使用者 mosvy在下面的評論中正確指出的那樣,任何程序輸出都會像重定向到文件一樣產生。如果實用程序在輸出到文件和輸出到終端設備之間有所不同,那麼輸出將與您預期的有所不同。一些需要終端的程序可能根本無法執行。
您也可以使用該
script
實用程序,它本身會啟動一個記錄到文件的互動式 shell。參見手冊script
。