web-dev-qa-db-fra.com

Comment désactiver une variable sur la ligne de commande?

J'ai essayé la commande suivante pour définir le 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 d'une variable dans le shell actuel?

94
Hamed Kamrava

Pour supprimer une variable d'environnement, exécutez

unset ALL_PROXY

Notez qu'une variable d'environnement ne prend effet que dans un programme et le programme qu'il lance. Si vous définissez une variable d'environnement dans une fenêtre Shell, cela n'affecte pas les autres fenêtres Shell.

Si vous avez ajouté export ALL_PROXY=… dans un fichier d'initialisation, supprimez-le de là.

Vous pouvez exécuter export sans argument pour voir quelles variables d'environnement sont définies dans le shell actuel.

N'oubliez pas que pour rendre une variable Shell disponible pour les programmes démarrés par ce Shell, vous devez l'exporter, soit en exécutant export VAR après la mission VAR=VALUE ou en combinant les deux (export VAR=VALUE).

Pour annuler la définition d'une variable liée dans bash, utilisez unset VARIABLE (unset ALL_PROXY dans ton cas). Cette commande supprime en fait la variable. Vous pouvez également définir la valeur d'une 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 le -u flag avec set pour le forcer à traiter les variables non définies comme une erreur en remplaçant:

/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 l'exemple ci-dessus, bash se plaint que var n'est pas lié (après avoir supprimé sa valeur), ce qui est l'erreur attendue (notez que cela ne se produit pas dans la deuxième commande echo, ce qui signifie que var a une valeur qui est empty ou null).

21
coffeMug