yaourt
上设置代理服务器:export ALL_PROXY=http://proxy.example.com:8080
问题是如何在
yaourt
上设置代理服务器?一般来说,我如何取消当前外壳程序中变量的值?
#1 楼
要删除环境变量,请运行unset ALL_PROXY
。请注意,环境变量仅在程序及其启动的程序中生效。如果在一个外壳程序窗口中设置环境变量,则不会影响其他外壳程序窗口。
如果已将
export ALL_PROXY=…
添加到初始化文件,请从那里删除它。您可以不带任何参数运行
export
来查看当前shell中设置了哪些环境变量。请记住,要使该shell变量可用于该shell所启动的程序,则需要将其导出,可以通过在分配
export VAR
之后运行VAR=VALUE
或将两者(export VAR=VALUE
)组合在一起来实现。评论
我认为导出VAR在分配后发生不是必需的。观察:sh -c'export F; F = 2; sh -c“ echo F2 = \ $ F”; echo F1 = $ F'打印“ F2 = 2 \ nF1 = 2”。
– dubiousjim
20-10-30在8:56
#2 楼
要在bash中取消绑定变量的设置,请使用unset VARIABLE
(在您的情况下为unset ALL_PROXY
)。此命令实际上会删除该变量。您还可以通过
VARIABLE=
或
VARIABLE=""
将变量的值设置为空。后两个命令不会删除该变量。
您可以通过将
-u
标志与set
一起使用来强制其将替换时未设置的变量视为错误来看到差异:/home/user1> var=""
/home/user1> echo $var
/home/user1> set -u
/home/user1> echo $var
/home/user1> unset var
/home/user1> echo $var
-bash: var: unbound variable
在上面的示例中,bash抱怨var
是未绑定的(取消设置其值之后),这是预期的错误(请注意,这在第二个echo命令中不会发生,这意味着var
的值是是empty
或null
)。评论
如果我的shell脚本文件中有一个变量并提供了该文件的源代码,那该怎么办呢?
– Abhinav
18年7月30日在20:43
@Abhinav在脚本中使用unset。同样适用。
–coffeMug
18年7月31日在10:54
评论
尝试取消设置ALL_PROXY@coffeMug可能也可以作为答案,您也可以考虑从此处窃取一些信息:stackoverflow.com/a/12263914/1081936
除了可接受的答案外,如果您经常运行某个命令,而该命令使用的环境变量在其余的shell会话中您不想设置或更改,则可以这样运行:$ ALL_PROXY = http:// proxy .example.com:8080您将仅为命令运行设置环境变量。您可以在命令运行之前根据需要放置任意数量的FOO = bar BAZ = bat变量。