Przed zainstalowaniem gnuplot ustawiam zmienną środowiskową GNUPLOT_DRIVER_DIR = /home/gnuplot/build/src. Podczas instalacji coś poszło nie tak.
Chcę usunąć GNUPLOT_DRIVER_DIRzmienną ś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_DIRzmienną środowiskową. Jak mogę to osiągnąć?
Odpowiedzi:
unset to polecenie, którego szukasz.
unset GNUPLOT_DRIVER_DIR
unexportna zrobienie tego T="$MYVAR"; unset MYVAR; MYVAR="$T"; unset T?
declare +x MYVARaby usunąć eksport, ale zachowaj wartość w bieżącej powłoce.
export -n MYWARdziała również w Bash.
Sprawdź, czy istnieje zmienna DUALCASE:
el@apollo:~$ env | grep DUALCASE
el@apollo:~$
Nie robi tego, więc utwórz zmienną i wyeksportuj ją:
el@apollo:~$ DUALCASE=1
el@apollo:~$ export DUALCASE
Sprawdź, czy tam jest:
el@apollo:~$ env | grep DUALCASE
DUALCASE=1
Jest tam. Pozbądź się tego:
el@apollo:~$ unset DUALCASE
Sprawdź, czy nadal tam jest:
el@apollo:~$ env | grep DUALCASE
el@apollo:~$
Wyeksportowana zmienna środowiskowa DUALCASE jest usuwana.
Zresetuj wszystkie lokalne zmienne do wartości domyślnych podczas logowania:
el@apollo:~$ CAN="chuck norris"
el@apollo:~$ set | grep CAN
CAN='chuck norris'
el@apollo:~$ env | grep CAN
el@apollo:~$
el@apollo:~$ exec bash
el@apollo:~$ set | grep CAN
el@apollo:~$ env | grep CAN
el@apollo:~$
exec bash polecenie wyczyściło wszystkie zmienne lokalne, ale nie zmienne środowiskowe.
Przywróć wszystkie zmienne środowiskowe do wartości domyślnych podczas logowania:
el@apollo:~$ export DOGE="so wow"
el@apollo:~$ env | grep DOGE
DOGE=so wow
el@apollo:~$ env -i bash
el@apollo:~$ env | grep DOGE
el@apollo:~$
env -i bash polecenie wyczyściło wszystkie zmienne środowiskowe do domyślnych podczas logowania.
echo $VARIABLEjest 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). Ponadto env | VARIABLEmoże wychwycić więcej niż jedną zmienną pasującą do tego samego wzorca. Plus2, echo $VARIABLEumoż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 $VARIABLEnie 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 bashwydaje 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
unset x
Aby rozbroić zestaw zmiennych za pomocą setenv , użyj
unsetenv x
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
to może również działać.
export GNUPLOT_DRIVER_DIR=
envpolecenia. 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 PAGERwykonał lewę, przywracając domyślne zachowanie.
Jak wspomniano w powyższych odpowiedziach, unset GNUPLOT_DRIVER_DIRpowinno działać, jeśli exportustawiłeś zmienną. Jeśli ustawiłeś go na stałe, ~/.bashrca ~/.zshrcnastępnie po prostu usunięcie go stamtąd będzie działać.