
私は、.texpadtmp
元のコードに基づいて、すべてのディレクトリ内の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
コマンドの前にプレフィックスを付けることができます。