it-swarm.com.de

Führen Sie das Bash-Skript jedes Mal aus, wenn Befehlszeilen ausgeführt werden

Ich bin ein neuer Ubuntu/Linux-Benutzer und möchte eine Frage als meinen Titel oben stellen.

Zum Beispiel habe ich eine Bash-Datei ./script, die ich automatisch ausführen lassen möchte, wenn ich eine Befehlszeile eingebe. Sobald ich die Befehlszeile pwd ausführe, wird der ./script ausgeführt. Sobald ich die nächste Befehlszeile ls -la eingebe, wird der ./script erneut ausgeführt.

9
Ender Phan

Sie müssen die Variable Prompt_COMMAND setzen. Aus man bash:

Prompt_COMMAND
              If set, the value is executed as a command prior to
              issuing each primary Prompt.

Dies schreibt beispielsweise jedes Mal, wenn ein Befehl ausgeführt wird, das aktuelle Datum in /tmp/PC:

 $ Prompt_COMMAND="date > /tmp/PC"
13

Sie suchen nach der Umgebungsvariablen Prompt_COMMAND. Der Wert dieser Variablen wird als Befehl ausgeführt, nachdem jeder Befehl im Terminal ausgeführt wurde, kurz bevor die nächste Eingabeaufforderung angezeigt wird.

Stellen Sie es beispielsweise ein als:

export Prompt_COMMAND='/path/to/script'

Machen Sie zuerst das Skript /path/to/script ausführbar.

Jetzt wird das Skript nach jedem Befehl ausgeführt.

Wenn Sie nicht möchten, dass die Variable exportiert wird, sondern eine Shell-Variable anstelle einer Umgebungsvariablen, geben Sie export ein:

Prompt_COMMAND='/path/to/script'

Aus man bash:

Prompt_COMMAND 
If set, the value is executed as a command prior to issuing each primary Prompt.
11
heemayl