從腳本列印腳本的執行時間?

從腳本列印腳本的執行時間?

.texpadtmp我正在所有目錄中搜尋 PDF 文件,除了最初基於程式碼的目錄中的 PDF 文件這次討論

function findpdfs() {
find . -iname '*.pdf' -not -path "*.texpadtmp*" | while read filename
do
  echo -e "\033[34;1m// === PDF Document:\033[33;1m $filename\033[0m"
  pdftotext -enc Latin1 "$filename" - | grep --color=always -i $1
  time         # TODO problem here!
done
}

在最後一行中,我嘗試列印每個文件的腳本執行時間,但未成功。

如何正確列印時間?

我的下一個目標是取得所有執行時間,並將它們以整數的形式顯示在輸出中的百分比,以便我可以估算大部分時間資源的去向。

答案1

方法#1 - 使用開始/結束時間

您通常會看到它在您執行的位置完成:

begin=$(date +%s) 
... do something ...
end=$(date +%s)

然後用$begin時間減去時間$end就得到已經過去的秒數。

tottime=$(expr $end - $begin)

方法 #2 - 使用時間命令

另一種方法是使用timeBash 或 /bin/time 內建的指令time program that's included with most Linux/Unix systems here,

你可以這樣檢查:

$ type -a time
time is a shell keyword
time is /usr/bin/time
time is /bin/time

你像這樣使用它:

內建
$ time sleep 5

real    0m5.004s
user    0m0.001s
sys 0m0.001s
獨立可執行檔
$ /bin/time sleep 5
0.00user 0.00system 0:05.00elapsed 0%CPU (0avgtext+0avgdata 628maxresident)k
0inputs+0outputs (0major+191minor)pagefaults 0swaps

它們提供不同的輸出,但您可以使用適合您需求的輸出。兩者都會列印命令運行所需的時間:

$ time <cmd>

所以你可以為你的pdf2text命令加上前綴。

相關內容