Shell
如何在多個命令上執行時間並將時間輸出寫入文件?
我想執行
time
命令來測量幾個命令的時間。我想做的是:
- 測量所有加在一起的執行時間
- 將
time
輸出寫入文件STDERR
從我正在測量的命令中寫入STDERR
我不想做的是
- 將幾個命令寫入一個單獨的腳本(為什麼?因為所有這些已經是我以程式方式生成的腳本,並且創建另一個臨時腳本會比我想要的更混亂)
到目前為止我嘗試了什麼:
/usr/bin/time --output=outtime -p echo "a"; echo "b";
不起作用,
time
僅在第一個上執行。
/usr/bin/time --output=outtime -p ( echo "a"; echo "b"; )
不起作用,
(
是意外的令牌。
/usr/bin/time --output=outtime -p { echo "a"; echo "b"; }
不起作用,“沒有這樣的文件或目錄”。
/usr/bin/time --output=outtime -p ' echo "a"; echo "b";'
不起作用,“沒有這樣的文件或目錄”。
time ( echo "a"; echo "b"; ) 2>outtime
不起作用,因為它將全部重定向
STDERR
到outtime
; 我只想要time
那裡的輸出。而且當然,
time --output=outime echo "a";
不起作用,因為
--output=outime: command not found
.我該怎麼做?
用作
sh -c 'commands'
命令,例如:/usr/bin/time --output=outtime -p sh -c 'echo "a"; echo "b"'
不是正確的答案,但與問題非常相關。
獲取多個程序組合括號的計時統計資訊是必需的。用分號分隔命令**;或 &&**,如果 command2 應該只執行,當 command1 退出時沒有錯誤:
time ( command1 ; command2 ) time ( command1 && command2 )