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 VAR
se produise après laffectation. Observez:sh -c 'export F; F=2; sh -c "echo F2=\$F"; echo F1=$F'
imprime " F2 = 2 \ nF1 = 2 ". -
unset
est é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
unset
dans le script. Idem sapplique.
unset ALL_PROXY
$ ALL_PROXY=http://proxy.example.com:8080 yaourt
qui définira lenvvar uniquement pour lexécution de la commande . Vous pouvez mettre autant de variablesFOO=bar BAZ=bat
que vous le souhaitez avant lexécution de la commande.