Answers:
unset
是您要查找的命令。
unset GNUPLOT_DRIVER_DIR
unexport
做T="$MYVAR"; unset MYVAR; MYVAR="$T"; unset T
?
declare +x MYVAR
要删除导出,但将值保留在当前shell中。
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
不会告诉您变量是外壳变量(此处称为“局部变量”)还是环境变量,这是本演练的重点。
env -i bash
似乎是在创建子外壳程序(至少在Mac上是这样),这可能会产生意想不到的后果。
env | grep -e '^VARNAME='
。
因为原始问题没有提到变量的设置方式,并且因为我进入此页面寻找特定答案,所以添加了以下内容:
在C shell(csh / tcsh)中,有两种方法来设置环境变量:
set x = "something"
setenv x "something"
在该问题的不同的是,设置变量SETENV命令自动导出到子shell而可变设定与集都没有。
要使用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
如以上答案中所述,unset GNUPLOT_DRIVER_DIR
如果您曾经export
设置过变量,则应该可以使用。如果您将其永久设置在其中,~/.bashrc
或者~/.zshrc
只需将其从那里删除即可。