I have tried the following command to set Proxy on yaourt
:
export ALL_PROXY=http://proxy.example.com:8080
The question is how to unset the proxy on yaourt
?
In general, how can I unset the value of a variable in the current shell?
To remove an environment variable, run
unset ALL_PROXY
Note that an environment variable only takes effect in a program and the program it launches. If you set an environment variable in one shell window, it doesn't affect other shell windows.
If you've added export ALL_PROXY=…
to an initialization file, remove it from there.
You can run export
with no arguments to see what environment variables are set in the current shell.
Remember that to make a shell variable available to the programs started by that shell, you need to export it, either by running export VAR
after the assignment VAR=VALUE
or by combining the two (export VAR=VALUE
).
export VAR
occur after the assignment. Observe: sh -c 'export F; F=2; sh -c "echo F2=\$F"; echo F1=$F'
prints "F2=2\nF1=2".
Commented
Oct 30, 2020 at 8:56
unset
is also required to clear associative bash arrays (ie: bash "hash tables", or "dicts"), as this tutorial explains under the section titled "Clearing": artificialworlds.net/blog/2012/10/17/….
Commented
Jan 30, 2021 at 5:26
To unset a bound variable in bash use unset VARIABLE
(unset ALL_PROXY
in your case).
This command actually deletes the variable. You can also set the value of a variable to empty by
VARIABLE=
or
VARIABLE=""
The difference is that the two latter commands don't delete the variable.
You can see the difference by using the -u
flag with set
to force it to treat the unset variables as an error while substituting:
/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
In the above example, bash complains about var
is unbound (after unsetting its value) which is the expected error (note that this does not happen in second echo command, meaning that var
has a value which is empty
or null
).
unset ALL_PROXY
$ ALL_PROXY=http://proxy.example.com:8080 yaourt
that will set the envvar only for the command run. You can put as manyFOO=bar BAZ=bat
variables as you want prior to the command to run.