
.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 - 使用時間命令
另一種方法是使用time
Bash 或 /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
命令加上前綴。