Je suis nouveau au script shell. J’ai un script shell qui source un autre fichier. Un autre fichier est juste un fichier avec une paire nom-valeur. J’ai une confusion ici.
test.dat TEST_VARIABLE_PATH=/usr/project/workspace
fichier script (test_script.sh)
TEST_VARIABLE_PATH= source test.dat echo ${TEST_VARIABLE_PATH}
La déclaration echo ci-dessus imprime différentes valeurs qui me rendent confus. En ligne 1, si je fais
TEST_VARIABLE_PATH=/somepath/
, même si j’ai source test.dat qui a la variable TEST_VARIABLE_PATH déjà définie, echo imprime seulement
TEST_VARIABLE_PATH=/somepath/
où la source du fichier n’a pas écrasé la variable.
Supposons que si j’ai la ligne 1 comme
TEST_VARIABLE_PATH=\`dirname $0\`/../
, la commande source écrase et fait écho
TEST_VARIABLE_PATH=/usr/project/workspace
Pourquoi cette source se comporte différemment? S’il vous plaît, aidez-moi à comprendre.
Il semble que vous ne source
pas vraiment le fichier.
Pour le faire correctement, placez le chemin complet du fichier, comme:
source '/full/path/to/file'