Перед установкой 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
?
declare +x MYVAR
чтобы удалить экспорт, но сохранить значение в текущей оболочке.
export -n MYWAR
работает в Bash.
Проверьте, существует ли переменная 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> (если она существует, это также может быть подсказкой к тому, что вы хотите сделать).
echo $VARIABLE
не сообщает вам, является ли VARIABLE переменной оболочки (здесь называемой «локальная переменная») или переменной окружения, что и составляет весь смысл прохождения.
env -i bash
создается впечатление, что создается подоболочка (по крайней мере, на Mac), которая может иметь непредвиденные последствия.
env | grep -e '^VARNAME='
.
Поскольку в первоначальном вопросе не упоминается, как была установлена переменная, и поскольку я попал на эту страницу в поисках конкретного ответа, я добавляю следующее:
В оболочке C (csh / tcsh) есть два способа установить переменную окружения:
set x = "something"
setenv x "something"
Различие в поведении состоит в том, что переменные, установленные с помощью команды setenv , автоматически экспортируются в subshell, а переменные, установленные с помощью 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- ссылка / 0130200484 / 0130200484_ch18lev1sec24.html
это может также работать.
export GNUPLOT_DRIVER_DIR=
env
команды. Может случиться так, что приложение, которое использует переменную, не различает несуществующую и пустую переменную среды.
export PAGER=
, но это просто полностью отключило пейджинг - все мои справочные страницы просто сбрасывались прямо в терминал. unset PAGER
сделал свое дело, вернув его к поведению по умолчанию.
Как уже упоминалось в ответах выше, unset GNUPLOT_DRIVER_DIR
должно работать, если вы использовали export
для установки переменной. Если вы установили его навсегда ~/.bashrc
или ~/.zshrc
просто удалите его оттуда, будет работать.