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 VARocurra 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 ". -
unsettambié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
unseten el script. Mismo aplica.
unset ALL_PROXY$ ALL_PROXY=http://proxy.example.com:8080 yaourtque configurará el envvar solo para el comando ejecutar . Puede poner tantasFOO=bar BAZ=batvariables como desee antes de ejecutar el comando.