@coffeMug también podría convertir eso en una respuesta, también podría considerar robar alguna información de aquí: stackoverflow.com/a/12263914/1081936
terdon
Además de la respuesta aceptada, si hay un comando que ejecuta a menudo que utiliza una variable de entorno que prefiere no establecer o cambiar para el resto de su sesión de shell, puede ejecutarlo como: $ ALL_PROXY=http://proxy.example.com:8080 yaourteso configurará el entorno solo para comando ejecutado. Puede colocar tantas FOO=bar BAZ=batvariables como desee antes de que se ejecute el comando.
solo el
Respuestas:
113
Para eliminar una variable de entorno, ejecute
unset ALL_PROXY
Tenga en cuenta que una variable de entorno solo surte efecto en un programa y el programa que inicia. Si configura una variable de entorno en una ventana de shell, no afecta a otras ventanas de shell.
Si ha agregado export ALL_PROXY=…a un archivo de inicialización, elimínelo de allí.
Puede ejecutar exportsin argumentos para ver qué variables de entorno se establecen en el shell actual.
Recuerde que para hacer que una variable de shell esté disponible para los programas iniciados por ese shell, debe exportarla, ya sea ejecutando export VARdespués de la asignación VAR=VALUEo combinando los dos ( export VAR=VALUE).
Para desarmar una variable enlazada en bash use unset VARIABLE( unset ALL_PROXYen su caso). Este comando en realidad elimina la variable. También puede establecer el valor de una variable para vaciar por
VARIABLE=
o
VARIABLE=""
La diferencia es que los dos últimos comandos no eliminan la variable. Puede ver la diferencia usando el -uindicador con setpara forzarlo a tratar las variables no definidas como un error al sustituir:
En el ejemplo anterior, bash se queja de varque no está vinculado (después de desarmar su valor), que es el error esperado (tenga en cuenta que esto no sucede en el segundo comando echo, lo que significa que vartiene un valor que es emptyo null).
unset ALL_PROXY
$ ALL_PROXY=http://proxy.example.com:8080 yaourt
eso configurará el entorno solo para comando ejecutado. Puede colocar tantasFOO=bar BAZ=bat
variables como desee antes de que se ejecute el comando.Respuestas:
Para eliminar una variable de entorno, ejecute
Tenga en cuenta que una variable de entorno solo surte efecto en un programa y el programa que inicia. Si configura una variable de entorno en una ventana de shell, no afecta a otras ventanas de shell.
Si ha agregado
export ALL_PROXY=…
a un archivo de inicialización, elimínelo de allí.Puede ejecutar
export
sin argumentos para ver qué variables de entorno se establecen en el shell actual.Recuerde que para hacer que una variable de shell esté disponible para los programas iniciados por ese shell, debe exportarla, ya sea ejecutando
export VAR
después de la asignaciónVAR=VALUE
o combinando los dos (export VAR=VALUE
).fuente
Para desarmar una variable enlazada en bash use
unset VARIABLE
(unset ALL_PROXY
en su caso). Este comando en realidad elimina la variable. También puede establecer el valor de una variable para vaciar poro
La diferencia es que los dos últimos comandos no eliminan la variable. Puede ver la diferencia usando el
-u
indicador conset
para forzarlo a tratar las variables no definidas como un error al sustituir:En el ejemplo anterior, bash se queja de
var
que no está vinculado (después de desarmar su valor), que es el error esperado (tenga en cuenta que esto no sucede en el segundo comando echo, lo que significa quevar
tiene un valor que esempty
onull
).fuente
unset
en el script. Lo mismo aplica.