J'utilise deux versions de ROS l'une à côté de l'autre. Pour en utiliser un, je dois trouver des variables d’environnement pour la version en question. Je voudrais créer un script qui fait ceci. Mais si je crée un script comme ci-dessous, les variables ne sont pas définies, elles le sont probablement dans un sous-shell. Comment puis-je obtenir les fichiers dans le shell du terminal principal?
source.sh:
source /opt/ros/fuerte/setup.bash;
source ~/fuerte_workspace/setup.bash;
Voici comment j'appelle source.sh:
./source.sh
# This does not echo anything, but I expect it should
echo $ros_config
Mise à jour: en recherchant source.sh comme suggéré dans la réponse, je peux maintenant voir les variables en cours de définition.
source ./source.sh
# This works now
echo $ros_config
Exécuter un script shell en utilisant. ./ (barre oblique)
Lors de l’exécution du script Shell à l’aide de “dot space dot slash”
, comme indiqué ci-dessous, le script sera exécuté dans le shell en cours sans créer de correspondance.
$ . ./setup.bash
En d'autres termes, cela exécute les commandes spécifiées dans le setup.bash
dans le shell actuel et prépare l'environnement pour vous.
Utilisez la notation par points pour trouver la source dans le fichier de script dans le courant Shell, c.-à-d. sans créer de sous- Shell:
. /opt/ros/fuerte/setup.bash
. ~/fuerte_workspace/setup.bash