Перш ніж встановлювати 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 , автоматично експортуються в підпакет, тоді як набір змінних з набором - ні.
Щоб зняти набір змінних із набором , використовуйте
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
просто видалили звідти, спрацює.