He probado el siguiente comando para configurar el proxy en yaourt
:
export ALL_PROXY=http://proxy.example.com:8080
La pregunta es cómo desarmar el proxy en yaourt
. En general, ¿cómo puedo anular el valor de una variable en el shell actual?
Comentarios
Respuesta
Para eliminar una variable de entorno, ejecute
unset ALL_PROXY
Tenga en cuenta que una variable de entorno solo tiene efecto en un programa y el programa lanza. Si configura una variable de entorno en una ventana de shell, no afectará a otras ventanas de shell.
Si «ha agregado export ALL_PROXY=…
a un archivo de inicialización, elimine desde allí.
Puede ejecutar export
sin argumentos para ver qué variables de entorno están configuradas en el shell actual.
Recuerde que para 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ón VAR=VALUE
o combinando los dos (export VAR=VALUE
).
Comentarios
- Creo que ' no es esencial que
export VAR
ocurra después de la asignación. Observe:sh -c 'export F; F=2; sh -c "echo F2=\$F"; echo F1=$F'
imprime " F2 = 2 \ nF1 = 2 ". -
unset
también se requiere para borrar matrices bash asociativas (es decir: bash " tablas hash ", o " dicts "), como se explica en este tutorial en la sección titulada " Limpiando ": artificialworlds.net/blog/2012/10/17/… .
Respuesta
Para desarmar una variable vinculada en bash, use unset VARIABLE
(unset ALL_PROXY
en su caso). Este comando realmente elimina la variable. También puede establecer que el valor de una variable esté vacío
VARIABLE=
o
VARIABLE=""
La diferencia es que los dos últimos comandos no eliminan la variable. Puedes ver la diferencia usando el indicador -u
con set
para forzarlo a tratar las variables no configuradas como un error al sustituir:
/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
En el ejemplo anterior, bash se queja de var
no está vinculado (después de anular su valor), que es el error esperado (tenga en cuenta que esto no sucede en el segundo comando de eco, lo que significa que var
tiene un valor que es empty
o null
).
Comentarios
- ¿Qué pasa si tengo una variable en mi archivo de script de shell y obtengo ese archivo, entonces, ¿cómo voy a desarmarlo?
- @Abhinav use
unset
en el script. Mismo aplica.
unset ALL_PROXY
$ ALL_PROXY=http://proxy.example.com:8080 yaourt
que configurará el envvar solo para el comando ejecutar . Puede poner tantasFOO=bar BAZ=bat
variables como desee antes de ejecutar el comando.