我已经尝试使用以下命令在yaourt上设置代理服务器:

export ALL_PROXY=http://proxy.example.com:8080


问题是如何在yaourt上设置代理服务器?
一般来说,我如何取消当前外壳程序中变量的值?

评论

尝试取消设置ALL_PROXY

@coffeMug可能也可以作为答案,您也可以考虑从此处窃取一些信息:stackoverflow.com/a/12263914/1081936

除了可接受的答案外,如果您经常运行某个命令,而该命令使用的环境变量在其余的shell会话中您不想设置或更改,则可以这样运行:$ ALL_PROXY = http:// proxy .example.com:8080您将仅为命令运行设置环境变量。您可以在命令运行之前根据需要放置任意数量的FOO = bar BAZ = bat变量。

#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的值是是emptynull)。

评论


如果我的shell脚本文件中有一个变量并提供了该文件的源代码,那该怎么办呢?

– Abhinav
18年7月30日在20:43

@Abhinav在脚本中使用unset。同样适用。

–coffeMug
18年7月31日在10:54