Перед установкой gnuplot я установил переменную окружения GNUPLOT_DRIVER_DIR = /home/gnuplot/build/src
. Во время установки что-то пошло не так.
Я хочу удалить переменную среды GNUPLOT_DRIVER_DIR
. Как я могу этого добиться?
Перед установкой gnuplot я установил переменную окружения GNUPLOT_DRIVER_DIR = /home/gnuplot/build/src
. Во время установки что-то пошло не так.
Я хочу удалить переменную среды GNUPLOT_DRIVER_DIR
. Как я могу этого добиться?
unset
- это команда, которую вы ищете.
unset GNUPLOT_DRIVER_DIR
unexport
сделать T="$MYVAR"; unset MYVAR; MYVAR="$T"; unset T
?
- person olejorgenb; 11.12.2016
declare +x MYVAR
, чтобы удалить экспорт, но сохранить значение в текущей оболочке.
- person Peder Klingenberg; 15.12.2016
export -n MYWAR
также работает в Bash.
- person jarno; 03.05.2017
Проверьте, существует ли переменная DUALCASE:
el@apollo:~$ env | grep DUALCASE
el@apollo:~$
Нет, поэтому создайте переменную и экспортируйте ее:
el@apollo:~$ DUALCASE=1
el@apollo:~$ export DUALCASE
Проверьте, есть ли он там:
el@apollo:~$ env | grep DUALCASE
DUALCASE=1
Он есть. Так что избавься от этого:
el@apollo:~$ unset DUALCASE
Проверьте, сохранился ли он:
el@apollo:~$ env | grep DUALCASE
el@apollo:~$
Экспортированная переменная среды DUALCASE удаляется.
Сброс всех локальных переменных по умолчанию при входе в систему:
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
очистила все локальные переменные, но не переменные среды.
Сброс всех переменных среды по умолчанию при входе в систему:
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
очистила все переменные среды до значений по умолчанию при входе в систему.
echo $VARIABLE
лучше, чем env | grep VARIABLE
, он легче, так как не нужно распечатывать все переменные, а затем отправлять результат другому процессу (grep). Кроме того, env | VARIABLE
может поймать более одной переменной, соответствующей одному и тому же шаблону. Plus2, echo $VARIABLE
позволяет дополнить имя переменной, нажав ‹Tab› (если он существует, это также может быть намеком на то, что вы хотите сделать).
- person Rodrigo Gurgel; 12.01.2016
echo $VARIABLE
не сообщает вам, является ли VARIABLE переменной оболочки (здесь называется локальной переменной) или переменной среды, что и составляет весь смысл пошагового руководства.
- person hmijail mourns resignees; 04.10.2016
env -i bash
, похоже, создает подоболочку (по крайней мере, на Mac), что может иметь непредвиденные последствия.
- person Mark Chackerian; 28.07.2017
env | grep -e '^VARNAME='
.
- person Thomas; 01.02.2019
Поскольку в исходном вопросе не упоминается, как была установлена переменная, и поскольку я попал на эту страницу в поисках этого конкретного ответа, я добавляю следующее:
В оболочке C (csh / tcsh) есть два способа установить переменную среды:
set x = "something"
setenv x "something"
Разница в поведении заключается в том, что переменные, установленные с помощью команды setenv, автоматически экспортируются в подоболочку, а переменные, установленные с помощью set нет.
Чтобы сбросить переменную, установленную с помощью set, используйте
unset x
Чтобы отключить набор переменных с помощью setenv, используйте
unsetenv x
Примечание. во всем вышесказанном я предполагаю, что имя переменной - «x».
кредиты:
https://www.cyberciti.biz/faq/unix-linux-difference-between-set-and-setenv-c-shell-variable/ https://www.oreilly.com/library/view/solaristm-7-reference/0130200484/0130200484_ch18lev1sec24.html
это также может сработать.
export GNUPLOT_DRIVER_DIR=
env
. Возможно, приложение, использующее переменную, не различает несуществующую и пустую переменную среды.
- person Palec; 24.12.2017
export PAGER=
, но это полностью отключило разбиение на страницы - все мои справочные страницы просто выгружались прямо в терминал. unset PAGER
сделал свое дело, вернув его к поведению по умолчанию.
- person Chad; 14.12.2019
Как упоминалось в ответах выше, unset GNUPLOT_DRIVER_DIR
должен работать, если вы использовали export
для установки переменной. Если вы установили его постоянно в ~/.bashrc
или ~/.zshrc
, то просто удалить его оттуда будет работать.