Jestem nowym użytkownikiem Ubuntu / Linux, chciałbym zadać pytanie tak jak mój tytuł powyżej.
Na przykład mam plik bash ./script
, chciałbym, aby uruchamiał się automatycznie po wpisaniu dowolnego wiersza polecenia. Raz wykonać wiersz polecenia pwd
następnie ./script
zostanie wykonany. Raz wpisać następną linię poleceń ls -la
następnie ./script
zostanie ponownie wykonana.
command-line
bash
scripts
execute-command
Ender Phan
źródło
źródło
Odpowiedzi:
Musisz ustawić
PROMPT_COMMAND
zmienną. Odman bash
:Na przykład spowoduje to zapisanie bieżącej daty za
/tmp/PC
każdym razem, gdy polecenie zostanie wykonane:źródło
echo $(date)
zostanie uruchomione w czasie deklaracji, więc zawsze pokaże (zapisze) ten sam czas.Szukasz
PROMPT_COMMAND
zmiennej środowiskowej, wartość tej zmiennej zostanie wykonana jako polecenie, po wykonaniu każdego polecenia podanego w terminalu, tuż przed wyświetleniem następnego monitu.Na przykład ustaw jako:
/path/to/script
Najpierw wykonaj skrypt .Teraz skrypt będzie uruchamiany po każdym poleceniu.
Uwaga: jeśli nie chcesz, aby zmienna była eksportowana, tzn. Uczyń ją zmienną powłoki zamiast zmiennej środowiskowej, upuść
export
:Od
man bash
:źródło
export
?export
zmieni zmiennąPROMPT_COMMAND
środowiskową, tj. Zmienna będzie dostępna dla wszystkich procesów potomnych (np. Podpowłoki) bieżącej powłoki. Jeśli chcesz ograniczyć go tylko do bieżącej sesji powłoki (zmienna powłoki), usuńexport
.export
nie jest tutaj dobrą praktyką -PROMPT_COMMAND
powinno być ustawione tylko w interaktywnym pliku startowym powłoki i nie powinno być widoczne w środowisku