[[Vorlage(Archiviert)]] {{{#!vorlage Warnung Die Verwendung dieses Howto geschieht auf eigene Gefahr. Bei Problemen mit der Anleitung melde dies bitte in der dazugehörigen Diskussion und wende dich zusätzlich an den Verfasser des Howtos. }}} {{{#!vorlage Hinweis Diese Howto-Anleitung wurde zuletzt von [user:lionlizard:] am 22.11.2016 unter '''Lubuntu 16.04''' erfolgreich getestet. }}} {{{#!vorlage Wissen [:Terminal: Ein Terminal öffnen] [:Editor: Einen Editor verwenden] [:Rechte: Rechte für Dateien und Ordner ändern] }}} =Vorwort= Gelegentlich kommt es vor, dass man im [:Terminal:] einen Befehl ausführen lässt, der einige Zeit in Anspruch nimmt. In der Zwischenzeit erledigt man etwas anderes und hat dann das Terminalfenster nicht mehr im Blick. Wenn man wieder ins Terminal zurück wechselt, stellt man fest, dass der Befehl ausgeführt wurde, aber man würde nun gern wissen, wie lange die Ausführung gedauert hat. Dafür gibt es verschiedene Methoden, aber am praktischsten wäre es, wenn man einfach in der Zeile vor dem neuen Prompt die Start- und Endzeit im Terminal angezeigt bekäme. Wie man dies mit Hilfe eines Skripts bewerkstelligen kann, soll Thema dieses Howtos sein. Auf [https://github.com/rcaloras/bash-preexec Github.com] findet sich ein Skript, dass in der [:Bash:] zwei Funktionen zur Verfügung stellt. 1. preexec() - Diese Funktion wird ausgeführt wenn ein Befehl gerade eingelesen wurde und unmittelbar bevor er ausgeführt wird. 1. precmd() - Diese Funktion wird ausgeführt, bevor der Prompt ausgegeben wird. = Installation = Um das Skript zu installieren, gibt man im [:Terminal:] folgenden Befehl ein: {{{#!vorlage Befehl curl https://raw.githubusercontent.com/rcaloras/bash-preexec/master/bash-preexec.sh -o ~/.bash-preexec.sh }}} Damit wird das Skript im eigenen Home-Verzeichnis mit den erforderlichen Rechten gespeichert. Nun müssen die Funktionsaufrufe festgelegt werden. Der bash-Befehl `date +%T.%N` gibt die aktuelle Zeit im Format Minuten:Sekunden.Hundertstel aus. Um die Startzeit eines Befehls zu speichern wird diese in die Variable "start" gespeichert: {{{#!vorlage Befehl preexec() { start=`date +%T.%N`; } }}} Um die Start- und Endzeit auf dem Bildschirm auszugeben, wird folgender Funktionsaufruf definiert:{{{#!vorlage Befehl precmd() { echo "Start:=$start"; echo "Ende: =`date +%T.%N`"; } }}} Um auf die Funktionen des Skripts in der [:Bash:] zugreifen zu können, muss es als Quelle im Bash-Profil festgelegt werden. Am einfachsten fügen wir daher am Ende der Datei '''~/.bashrc''' folgende 3 Zeilen ein: {{{ preexec() { start=`date +%T.%N`; } precmd() { echo "Start:=$start"; echo "Ende: =`date +%T.%N`"; } source ~/.bash-preexec.sh }}} Nach dem Speichern der Datei wird nun bei jedem Aufruf des Terminal die aktuelle Zeit ausgegeben, und nach jedem Befehl die Start- und Endzeit für diesen Befehl = Links = * [:Bash:] * [https://github.com/rcaloras/bash-preexec] {en} - ein externer Link #tag: Howto