78

我正在使用彼此相邻的两个版本的 ROS。要使用一个,我必须为特定版本获取一些环境变量。我想创建一个执行此操作的脚本。但是如果我创建一个像下面这样的脚本没有设置变量,它们可能设置在一个子shell中。如何将文件源到主终端外壳?

来源.sh:

source /opt/ros/fuerte/setup.bash;
source  ~/fuerte_workspace/setup.bash;

这是我调用 source.sh 的方式:

./source.sh
# This does not echo anything, but I expect it should
echo $ros_config

更新:通过按照答案中的建议采购 source.sh ,我现在可以看到正在设置的变量。

source ./source.sh
# This works now
echo $ros_config
4

2 回答 2

127
于 2013-04-15T09:11:46.170 回答
10

使用点符号在当前shell 中的脚本文件中获取源,即不创建子 shell

. /opt/ros/fuerte/setup.bash
. ~/fuerte_workspace/setup.bash
于 2013-04-15T09:06:44.297 回答