ROS的setup脚本如何改变系统环境变量?
测试的环境
ROS版本:indigo
操作系统:Ubuntu 1404 32bit/64bit
准备知识
完整地学习过ROS beginner level。
问题
我们已经知道,某些ROS命令行工具(例如rosrun)需要根据这个环境变量,ROS_CKAGE_PATH,指明的路径去搜索某些ROS软件包。同时,我们也知道可以通过source某个ROS工作空间(workspace)相应的setup.*sh使该工作空间的src文件夹路径在该环境变量中。
但是,一个setup.*sh做了哪些事,又是如何完成自己的工作的呢?
探究
一个工作空间中的所有setup文件(setup.*sh)最后都指向setup.sh。在setup.sh中,有这样的一段话:
#!/usr/bin/env sh
# generated from catkin/cmake/template/setup.sh.in
# Sets various environment variables and sources additional environment hooks.
# It tries it's best to undo