In zsh können Sie die Hook-Funktion so definieren preexec
, dass eine bestimmte Zeichenfolge wiederholt wird, bevor jeder Befehl ausgeführt wird.
In Bash können Sie die DEBUG
Falle verwenden, um einen Preexec-Hook einzurichten, um dasselbe zu tun.
Sie würden eine preexec () - Funktion wie folgt definieren:
preexec () { echo "-------------------------------"; }
preexec_invoke_exec () {
[ -n "$COMP_LINE" ] && return # do nothing if completing
preexec
}
trap 'preexec_invoke_exec' DEBUG
Weitere Informationen finden Sie unter Hat bash einen Hook, der ausgeführt wird, bevor ein Befehl ausgeführt wird?
Ich denke nicht, dass dies in allen Versionen von Bash funktioniert. Auf meinem alten Ubuntu Server laufen bash 3.2.39 (1), help trap
sagt
Wenn ein SIGNAL_SPEC DEBUG ist, wird ARG nach jedem einfachen Befehl ausgeführt.
Auf einem anderen Server, auf dem bash 4.1.2 (1) ausgeführt wird, heißt es
Wenn ein SIGNAL_SPEC DEBUG ist, wird ARG vor jedem einfachen Befehl ausgeführt.
Welches ist, was wir brauchen. Stellen Sie also sicher, dass in Ihrer Version von bash help trap
" vor jedem einfachen Befehl" steht.