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 automatisch ausgeführt werden soll, wenn ich eine Befehlszeile eingebe. Sobald ich Befehlszeile ausführen pwd
dann das ./script
wird ausgeführt. Sobald ich die nächste Befehlszeile ls -la
dann die ./script
erneut ausgeführt.
command-line
bash
scripts
execute-command
Ender Phan
quelle
quelle
Antworten:
Sie müssen eine
PROMPT_COMMAND
Variable festlegen . Vonman bash
:Dies schreibt beispielsweise das aktuelle Datum in
/tmp/PC
jedes Mal, wenn ein Befehl ausgeführt wird:quelle
echo $(date)
wird zur Deklarationszeit ausgeführt, sodass immer dieselbe Zeit angezeigt (gespeichert) wird.Wenn Sie nach einer
PROMPT_COMMAND
Umgebungsvariablen suchen , wird der Wert dieser Variablen als Befehl ausgeführt, nachdem jeder im Terminal angegebene Befehl ausgeführt wurde, kurz bevor die nächste Eingabeaufforderung angezeigt wird.Stellen Sie es beispielsweise wie folgt ein:
Machen Sie das Skript
/path/to/script
zuerst ausführbar.Jetzt wird das Skript nach jedem Befehl ausgeführt.
Wenn Sie nicht möchten, dass die Variable exportiert wird, dh eine Shell-Variable anstelle einer Umgebungsvariablen erstellen, lassen Sie Folgendes fallen
export
:Von
man bash
:quelle
export
?export
macht die Variable zuPROMPT_COMMAND
einer Umgebungsvariablen, dh die Variable steht allen untergeordneten Prozessen (z. B. Subshells) der aktuellen Shell zur Verfügung. Wenn Sie es nur innerhalb der aktuellen Shell-Sitzung (Shell-Variable) einschränken möchten, entfernen Sie esexport
.export
ist hier keine gute Praxis -PROMPT_COMMAND
sollte nur in einer interaktiven Shell-Startdatei festgelegt werden und sollte nicht in der Umgebung sichtbar sein