Io-Redirection
將 stdout / stderr 輸出重定向到帶有時間戳的日誌文件
我正在嘗試將 stdout 和 stderr 重定向到日誌文件。文件名應使用目前時間戳動態創建。
我可以使用以下命令創建文件名:
$ date +%Y-%m-%d_%H-%M-%S.txt 2018-04-10_16-55-55.txt
所以我想做這樣的事情:
mycommand &> (date +%Y-%m-%d_%H-%M-%S.txt)
但這不起作用(
-bash: syntax error near unexpected token
(’`)
是的,您需要使用命令替換:
mycommand &> "$(date +%Y-%m-%d_%H-%M-%S.txt)"
哪個是
bash
-speak formycommand >"$(date +%Y-%m-%d_%H-%M-%S.txt)" 2>&1
這與
mycommand >"$(date +%F_%H-%M-%S.txt)" 2>&1
(
%F
與 相同%Y-%m-%d
)命令替換 ,
$(...)
將被內部命令的輸出替換。您使用的是子外殼,
(...)
. 子外殼不能接受這樣的重定向。
試試這個:
today=`date +%Y-%m-%d_%H-%M-%S`; mycommand > ${today}.txt 2>&1