Czy w tym przykładzie można wywołać skrypt nazwany hey.sh
po każdym poleceniu bash?
Na przykład wpiszesz ls
hit Enter i uruchomi się ls, a następnie hey.sh
uruchomi się.
Następnie wpisz cd ..
(lub dowolne inne polecenie) , uruchomi się cd hey.sh
, i tak dalej.
Odpowiedzi:
Uwaga: Zmienne środowiskowe a zmienne powłoki
Domyślnie
PROMPT_COMMAND
jest nie zmienna . To tylko zmienna powłoki .Dostęp do obu typów zmiennych można uzyskać w ten sam sposób (
"$variable*"
), ale zmienne środowiskowe są dziedziczone przez procesy potomne, podczas gdy zmienne powłoki nie.Konwencja polega na pisaniu wielkimi literami zmiennych środowiskowych + zmiennych powłoki, które konfigurują powłokę (PROMPT_COMMAND konfiguruje powłokę), ale inne typy zmiennych należy zapisywać małymi literami.
W bash możesz:
declare -p
sprawdzić, czy zmienna jest eksportowana (= zmienna środowiskowa), czy nie:źródło
export
tego. Wystarczy go ustawić (lub dołączyć do niego, np. Jak pokazano powyżej).