Przed zainstalowaniem gnuplot ustawiam zmienną środowiskową GNUPLOT_DRIVER_DIR = /home/gnuplot/build/src
. Podczas instalacji coś poszło nie tak.
Chcę usunąć GNUPLOT_DRIVER_DIR
zmienną środowiskową. Jak mogę to osiągnąć?
Przed zainstalowaniem gnuplot ustawiam zmienną środowiskową GNUPLOT_DRIVER_DIR = /home/gnuplot/build/src
. Podczas instalacji coś poszło nie tak.
Chcę usunąć GNUPLOT_DRIVER_DIR
zmienną środowiskową. Jak mogę to osiągnąć?
Odpowiedzi:
unset
to polecenie, którego szukasz.źródło
unexport
na zrobienie tegoT="$MYVAR"; unset MYVAR; MYVAR="$T"; unset T
?declare +x MYVAR
aby usunąć eksport, ale zachowaj wartość w bieżącej powłoce.export -n MYWAR
działa również w Bash.Instrukcja tworzenia i usuwania zmiennej środowiskowej w bash:
Sprawdź, czy istnieje zmienna DUALCASE:
Nie robi tego, więc utwórz zmienną i wyeksportuj ją:
Sprawdź, czy tam jest:
Jest tam. Pozbądź się tego:
Sprawdź, czy nadal tam jest:
Wyeksportowana zmienna środowiskowa DUALCASE jest usuwana.
Dodatkowe polecenia, które pomogą wyczyścić zmienne lokalne i środowiskowe:
Zresetuj wszystkie lokalne zmienne do wartości domyślnych podczas logowania:
exec bash
polecenie wyczyściło wszystkie zmienne lokalne, ale nie zmienne środowiskowe.Przywróć wszystkie zmienne środowiskowe do wartości domyślnych podczas logowania:
env -i bash
polecenie wyczyściło wszystkie zmienne środowiskowe do domyślnych podczas logowania.źródło
echo $VARIABLE
jest lepszy niżenv | grep VARIABLE
, jest lżejszy, ponieważ nie musi drukować wszystkich zmiennych, a następnie wysyłać dane wyjściowe do innego procesu (grep). Ponadtoenv | VARIABLE
może wychwycić więcej niż jedną zmienną pasującą do tego samego wzorca. Plus2,echo $VARIABLE
umożliwia uzupełnienie nazwy zmiennej poprzez wciśnięcie <Tab> (jeśli istnieje, może to być również wskazówka do tego, co chcesz zrobić).echo $VARIABLE
nie mówi ci, czy VARIABLE jest zmienną powłoki (tutaj nazywaną „zmienną lokalną”) czy zmienną środowiskową, która jest całym punktem instrukcji.env -i bash
wydaje się, że tworzy podpowłokę (przynajmniej na komputerze Mac), co może mieć niezamierzone konsekwencje.env | grep -e '^VARNAME='
.Ponieważ oryginalne pytanie nie wspomina o tym, jak zmienna została ustawiona, i ponieważ doszedłem do tej strony, szukając tej konkretnej odpowiedzi, dodaję:
W powłoce C (csh / tcsh) istnieją dwa sposoby ustawienia zmiennej środowiskowej:
set x = "something"
setenv x "something"
Różnica w zachowaniu polega na tym, że zmienne ustawione za pomocą polecenia setenv są automatycznie eksportowane do podpowłoki, podczas gdy zmienne ustawione za pomocą zestawu nie są.
Aby rozbroić zestaw zmiennych za pomocą set , użyj
Aby rozbroić zestaw zmiennych za pomocą setenv , użyj
Uwaga: we wszystkich powyższych przypadkach zakładam, że nazwa zmiennej to „x”.
kredyty:
https://www.cyberciti.biz/faq/unix-linux-difference-between-set-and-setenv-c-shell-variable/ https://www.oreilly.com/library/view/solaristm-7- referencja / 0130200484 / 0130200484_ch18lev1sec24.html
źródło
to może również działać.
źródło
env
polecenia. Może się tak zdarzyć, że aplikacja korzystająca ze zmiennej nie rozróżnia nieistniejącej i pustej zmiennej środowiskowej.export PAGER=
, ale to całkowicie wyłączyło stronicowanie - wszystkie moje strony podręcznika właśnie zrzuciły prosto do terminala.unset PAGER
wykonał lewę, przywracając domyślne zachowanie.Jak wspomniano w powyższych odpowiedziach,
unset GNUPLOT_DRIVER_DIR
powinno działać, jeśliexport
ustawiłeś zmienną. Jeśli ustawiłeś go na stałe,~/.bashrc
a~/.zshrc
następnie po prostu usunięcie go stamtąd będzie działać.źródło