如果我想將 sh 文件中的每個命令列印到日誌檔案和控制台怎麼辦

如果我想將 sh 文件中的每個命令列印到日誌檔案和控制台怎麼辦

如果我想將 sh 文件中的每個命令列印到日誌檔案和控制台該怎麼辦?

現在我有下面的內容,我想要單行命令(例如列印到文件,這會將所有命令輸出列印到檔案 ) 可以將所有前面的命令輸出 /echos 列印到檔案和控制台 #sh

SH
**some command here, so it will print all below echos to file and console** 

echo start
echo "My first name is $1"
echo "My surname is $2"
echo "Total number of arguments is $#" 
echo end 

答案1

有兩種方法。其他人提到了T卹。第二種方法是「script」指令及其變體,它記錄傳送到進程標準輸出的所有內容。如果您想在腳本中進行重定向,請使用

#!/bin/bash
{
echo start
echo "My first name is $1"
echo "My surname is $2"
echo "Total number of arguments is $#"
echo end
} | tee logfile

答案2

嘗試這個...

#!/bin/bash

log_file=/tmp/log.txt

function log(){
echo "$@" | tee -a "${log_file}"
}

log "test"
log "hello"
log "testing...."

答案3

您可以使用tee命令將腳本的輸出重新導向到標準輸出和檔案。

以下指令將會將檔案 f1.txt 的內容印到檔案 f2.txt 以及 stdout(控制台)中。

cat f1.txt | tee f2.txt

有關 T 卹檢查的更多信息T 卹線上幫助頁

答案4

script一個程式可以對終端會話進行打字,即記錄終端上顯示的所有內容。

相關內容