Jai essayé la commande suivante pour définir Proxy sur yaourt:
export ALL_PROXY=http://proxy.example.com:8080
La question est de savoir comment désactiver le proxy sur yaourt? En général, comment puis-je annuler la valeur dune variable dans le shell actuel?
Commentaires
Réponse
Pour supprimer une variable denvironnement, exécutez
unset ALL_PROXY
Notez quune variable denvironnement ne prend effet que dans un programme et le programme lance. Si vous définissez une variable denvironnement dans une fenêtre shell, cela naffecte pas les autres fenêtres shell.
Si vous « avez ajouté export ALL_PROXY=… à un fichier dinitialisation, supprimez à partir de là.
Vous pouvez exécuter export sans argument pour voir quelles variables denvironnement sont définies dans le shell actuel.
Noubliez pas que pour rendre une variable shell accessible aux programmes lancés par ce shell, vous devez lexporter, soit en exécutant export VAR après laffectation VAR=VALUE ou en combinant les deux (export VAR=VALUE).
Commentaires
- Je pense que ' nest pas indispensable que le
export VARse produise après laffectation. Observez:sh -c 'export F; F=2; sh -c "echo F2=\$F"; echo F1=$F'imprime " F2 = 2 \ nF1 = 2 ". -
unsetest également nécessaire pour effacer les tableaux bash associatifs (par exemple: bash " tables de hachage " ou " dicts "), comme lexplique ce tutoriel dans la section intitulée " Effacement ": artificialworlds.net/blog/2012/10/17/… .
Réponse
Pour annuler la définition dune variable liée dans bash, utilisez unset VARIABLE (unset ALL_PROXY dans votre cas). Cette commande supprime en fait la variable. Vous pouvez également définir la valeur dune variable sur vide par
VARIABLE=
ou
VARIABLE=""
La différence est que les deux dernières commandes ne suppriment pas la variable. Vous pouvez voir la différence en utilisant lindicateur -u avec set pour le forcer à traiter les variables non définies comme une erreur lors de la substitution:
/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
Dans lexemple ci-dessus, bash se plaint de var nest pas lié (après avoir désactivé sa valeur) qui est lerreur attendue (notez que cela ne se produit pas dans la deuxième commande décho, ce qui signifie que var a une valeur qui est empty ou null).
Commentaires
- Et si je avoir une variable dans mon fichier de script shell et je trouve ce fichier, alors comment vais-je annuler cela?
- @Abhinav utilise
unsetdans le script. Idem sapplique.
unset ALL_PROXY$ ALL_PROXY=http://proxy.example.com:8080 yaourtqui définira lenvvar uniquement pour lexécution de la commande . Vous pouvez mettre autant de variablesFOO=bar BAZ=batque vous le souhaitez avant lexécution de la commande.