Bis jetzt habe ich nur Aliase und Funktionen verwendet, die unter .bashrc
definiert sind, aber jetzt muss ich wissen, wie man eine Funktion konfiguriert, die vor/nach jedem Befehl ausgeführt wird. Wie kann ich es erreichen?Eine Aktion konfigurieren, die bei jeder Benutzereingabe ausgeführt wird
Antwort
Es ist eine Umgebungsvariable PROMPT_COMMAND
finden the manual
PROMPT_COMMAND
Wenn gesetzt, wird der Wert als Befehl an vor dem Drucken jeder primären Aufforderung auszuführen interpretiert wird (
$PS1
).
Für einen trivialen Fall, setzen Sie ihn wie ein Alias:
PROMPT_COMMAND='echo "Something"'
Für komplexere Sachen, man kann es eine Funktion aufrufen haben:
prompt_command() {
# If username has underscore, shorten to 'a_b'; else just use first letter
un="${USER:0:1}"
if [[ $USER == *?_?* ]]; then
local suff="${USER##*_}"
un+=_"${suff:0:1}"
fi
}
PROMPT_COMMAND=prompt_command
ich dies zu ändern, verwenden Benutzername in meiner Eingabeaufforderung, so woanders in meinem .bashrc
gibt es etwas wie
export PS1="[email protected]\h \$"
Der typische [email protected] $
Prompt also, aber der Benutzername wird dynamisch wie in der PROMPT_COMMAND
Funktion angegeben verkürzt.
Hier ist ein PS4
Trick, dies zu tun. Unter der Annahme, möchten Sie date
Befehl vor jedem Befehl ausgeführt werden soll, dann können Sie einstellen PS4
wie:
PS4='$(date)\n'
Aktivieren Sie dann nur zu verfolgen, vor jedem Befehl Druckdatum zu starten:
set -x
Dann können Sie sehen, Datum erscheinen bevor jeder Befehl ausgeführt:
$> set -x
$> tty
Fri May 27 09:57:42 EDT 2016
tty
/dev/ttys004
$> uname
Fri May 27 09:57:48 EDT 2016
uname
Darwin
Wenn Sie diese deaktivieren deaktivieren nur die Spur mit:
set -x
- 1. document.ready wird nicht bei jeder Ladung ausgeführt
- 2. Global.asax Application_start ausgelöst bei jeder Aktion
- 3. nginx - Wie wird ein Shell-Skript bei jeder Anfrage ausgeführt?
- 4. Benutzerdefinierte Aktion wird nicht ausgeführt
- 5. Wird environment.rb bei jeder HTTP-Anfrage aufgerufen?
- 6. Wie kann MainThread warten, bis eine asynchrone Aktion ausgeführt wird?
- 7. Mit CGAfflineTransformMakeScale/Rotation wird nur eine Aktion ausgeführt
- 8. Wie wird eine Aktion ausgeführt, wenn CheckBox Listenansicht ausgewählt ist?
- 9. Benutzerdaten vor jeder Aktion überprüfen
- 10. Oozie-Shell-Aktion wird nicht ausgeführt, wenn Benutzer gesendet wird
- 11. Wie wird die Anzahl der Mitarbeiter bei jeder Bewertung angezeigt?
- 12. Wird die Facebook-Leiste bei jeder Anfrage neu geladen?
- 13. Wie kann ich eine benutzerdefinierte Aktion in WiX ausführen, die nur bei der Installation oder Deinstallation ausgeführt wird?
- 14. Eine UIAlertView bei jeder Berührung ablehnen
- 15. Wird diese linq-Abfrage bei jeder Iteration der for-each-Schleife ausgeführt?
- 16. ES6-Modulcode wird bei jedem Import ausgeführt
- 17. Wie blue Statusleiste angezeigt wird, wenn eine Aktion im Hintergrund ausgeführt wird
- 18. Wie "unterbreche" eine Aktion in AccessibilityService ausgeführt werden?
- 19. Odoo automatisierte Aktion nicht ausgeführt wird oder arbeiten
- 20. Wie Sie automatisch überprüfen, welche Controller-Aktion ausgeführt wird
- 21. Warum FOR Trigger wird nicht vor der Aktion ausgeführt?
- 22. Jeder HTML-Code nach iframe wird nicht mit document.write ausgeführt
- 23. Wie wird eine Aktion ausgeführt, wenn ein Element mit Jquery zu einer Seite hinzugefügt wird?
- 24. Android - SwitchCompat OnCheckedChangeListener Aktion ausgeführt wird jedes Mal, wenn die Aktivität gestartet wird
- 25. Atom Aktion ausgeführt beim Speichern
- 26. So blockieren Sie JQuery-Aktionen, während eine vorherige Aktion noch ausgeführt wird
- 27. Hilfedisplay für Python anzeigen, wenn keine Aktion ausgeführt wird
- 28. jQuery keyup Ereignis bei Benutzereingabe verzögern
- 29. WCF erzwingen, eine Methode bei jeder Anfrage aufzurufen, bevor die aktuelle Funktion aufgerufen wird
- 30. Schreiben Sie eine Kopfzeile bei jeder Logdatei, die mit einem zeit-rotierenden Logger erstellt wird
PS1 für vor dem Befehl, PROMPT_COMMAND für nach – 123