GNU/Linux >> Tutoriels Linux >  >> Linux

Comment définir une variable d'environnement sur la ligne de commande et la faire apparaître dans les commandes ?

Si je cours

export TEST=foo
echo $TEST

Il affiche foo.

Si je cours

TEST=foo echo $TEST

Ce ne est pas. Comment puis-je obtenir cette fonctionnalité sans utiliser d'exportation ou de script ?

Réponse acceptée :

C'est parce que le shell développe la variable dans la ligne de commande avant il exécute en fait la commande et à ce moment-là, la variable n'existe pas. Si vous utilisez

TEST=foo; echo $TEST

ça marchera.

export fera apparaître la variable dans l'environnement des commandes exécutées ultérieurement (pour savoir comment cela fonctionne dans bash, voir help export ). Si vous avez seulement besoin que la variable apparaisse dans l'environnement d'une commande, utilisez ce que vous avez essayé, c'est-à-dire :

TEST=foo your-application

La syntaxe du shell décrit cela comme étant fonctionnellement équivalent à :

export TEST=foo
your-application
unset TEST

Voir les spécifications pour plus de détails.

La partie intéressante est que le export la commande change le drapeau d'exportation pour la variable nom . Donc si vous faites :

unset TEST
export TEST
TEST="foo"

TEST sera exporté même s'il n'était pas défini au moment de l'exportation. Cependant, unset devrait en supprimer l'attribut d'exportation.


Linux
  1. Avoir une vache à la ligne de commande Linux

  2. Comment affecter la sortie d'une commande à une variable Shell ?

  3. Comment définir une variable égale à la sortie d'une commande dans Grub2 ?

  4. Comment les parenthèses sont-elles interprétées sur la ligne de commande ?

  5. Exemples de commandes d'exportation Linux (Comment définir des variables d'environnement)

Comment définir et répertorier les variables d'environnement sous Linux

Comment ajouter des commandes Linux à la file d'attente et les exécuter une par une

Comment définir et supprimer des variables d'environnement sous Linux

Comment définir une variable d'environnement dans Bash

Comment définir le navigateur par défaut à partir de la ligne de commande ?

MySQL la ligne de commande et les pagers