Dans la ligne de commande bash, j’ai défini une variable myPath = / home / user / dir. J’ai créé un script dans lequel j’ai mis echo $ myPath mais cela ne semble pas fonctionner. Ça ne fait rien. Que puis-je faire pour accéder à la variable myPath dans le script? Si j’écris echo $ myPath dans la commande, cela fonctionne, mais pas dans le script.
Essayer
export myPath=/home/user/dir
comment as-tu assigné la variable? ça aurait dû être:
$ export myPath="/home/user/dir"
puis dans un programme shell comme:
#!/usr/bin/env bash echo $myPath
vous obtiendrez les résultats souhaités.
Vous pouvez également faire cela pour définir la variable myPath juste pour myscript
myPath="whatever" ./myscript
Pour plus de détails sur la syntaxe délicate admise pour les variables d’environnement, voir: http://www.pixelbeat.org/docs/env.html
Vous devez déclarer votre affectation de variable avec “export” en tant que tel:
export myPath="/home/user/dir"
Cela entraînera le shell à inclure la variable dans l’environnement des sous-processus qu’il lance. Par défaut, les variables que vous déclarez (sans “export”) ne sont pas transmises à un sous-processus . C’est pourquoi vous n’avez pas initialement obtenu le résultat escompté.