Um die Ausführungszeit des Skripts aus dem Skript auszudrucken?

Um die Ausführungszeit des Skripts aus dem Skript auszudrucken?

Ich suche PDF-Dateien in allen Verzeichnissen außer denen in .texpadtmpnach Code, der ursprünglich aufdiese Diskussion.

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
}

wobei ich in der letzten Zeile erfolglos versuche, die Ausführungszeit des Skripts für jede Datei auszudrucken.

Wie kann man die Uhrzeit richtig ausdrucken?

Mein nächstes Ziel ist dann, alle Ausführungszeiten zu haben und sie in der Ausgabe als Prozentsätze und als ganze Zahlen darzustellen, damit ich ungefähr abschätzen kann, wofür die meisten Zeitressourcen aufgewendet werden.

Antwort1

Methode Nr. 1 – Verwenden der Anfangs-/Endzeit

Normalerweise geschieht dies dort, wo Sie es tun:

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

Und dann subtrahieren Sie die $beginZeit von der $endZeit, um die Anzahl der vergangenen Sekunden zu erhalten.

tottime=$(expr $end - $begin)

Methode Nr. 2 - Verwenden der Zeitbefehle

Die andere Methode wäre, den timein Bash integrierten Befehl oder time program that's included with most Linux/Unix systems here,/bin/time` zu ​​verwenden.

Sie können dies wie folgt überprüfen:

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

Sie verwenden es folgendermaßen:

eingebaut
$ time sleep 5

real    0m5.004s
user    0m0.001s
sys 0m0.001s
eigenständige ausführbare Datei
$ /bin/time sleep 5
0.00user 0.00system 0:05.00elapsed 0%CPU (0avgtext+0avgdata 628maxresident)k
0inputs+0outputs (0major+191minor)pagefaults 0swaps

Sie liefern unterschiedliche Ausgaben, aber Sie können die verwenden, die Ihren Anforderungen am besten entspricht. Beide geben die verstrichene Zeit aus, die ein Befehl zum Ausführen benötigt:

$ time <cmd>

Sie können Ihrem pdf2textBefehl also ein Präfix voranstellen.

verwandte Informationen