web-dev-qa-db-fra.com

Impossible de définir une variable d'environnement à l'aide d'un script Bash

Je veux définir une variable d'environnement à partir d'un script bash que j'ai écrit. J'ai donc créé un script bash et l'ai appelé set.sh. Son contenu est le suivant:

#!/bin/bash

export DEV_SRC="/home/m/mydata/sourecCode"
echo $DEV_SRC

Lorsque je lance ce script, la sortie est

/home/m/mydata/sourecCode

Mais si je lance ce code sur le même terminal que celui depuis lequel j'ai exécuté le script ci-dessus,

echo $DEV_SRC

Je ne vois aucune valeur, alors je pense que la valeur n'est pas exportée.

Pourquoi la valeur n'est-elle pas exportée?

2
mans

Par défaut, bash crée une copie de l'environnement actuel, exécute le script dans cet environnement, puis détruit la copie.

Pour exécuter un script dans l'environnement en cours, vous devez utiliser cette syntaxe:

. /home/m/mydata/sourecCode
echo $DEV_SRC

ou

source /home/m/mydata/sourecCode
echo $DEV_SRC
5
Ova