Bash

重定向到螢幕和文件

  • May 19, 2019

除了將它們列印在螢幕上之外,我還想將我執行的命令的所有輸出重定向到一個文件。

我希望這會自動發生,我不想tee每次都這樣做。

我試過exec | tee file了,但它不起作用。我該怎麼做呢?

這是 Bash,所以PROMPT_COMMAND也可用。

你可以這樣做:

exec > >(tee logfile) 2>&1

這會將 shell 的輸出和錯誤流重定向到程序替換>(tee logfile),這會將其保存在其中,logfile同時還將它們輸出到終端。

正如使用者 mosvy在下面的評論中正確指出的那樣,任何程序輸出都會像重定向到文件一樣產生。如果實用程序在輸出到文件和輸出到終端設備之間有所不同,那麼輸出將與您預期的有所不同。一些需要終端的程序可能根本無法執行。

您也可以使用該script實用程序,它本身會啟動一個記錄到文件的互動式 shell。參見手冊script

引用自:https://unix.stackexchange.com/questions/519800