.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
命令添加前缀。