最近对Ubuntu上各个工作区间进行source时遇到了几个问题,简单总结了一下,有一些心得,想记录下来也和大家分享一下。
- source命令简单介绍
- 通过source单个工作区间的setup.bash文件来配置该功能包环境
- source在home里的.bashrc文件解决每次cmake工作区间后都要source的问题
- source在home里的.bashrc文件无效问题
1.source命令简单介绍
命令用法:source FileName
作用: source命令的作用就是用来执行FileName脚本。
注:该命令通常用命令“.”来替代。
如:source .bash_rc 与 . .bash_rc 是等效的。
2.通过source单个工作区间的setup.bash文件来配置该功能包环境
在这,我用我使用的名为racecar工作区间来给大家演示一下
A.进入工作区间(cd 工作区间的名字)
cd racecar
B.source 工作区间(即source工作区间的环境配置文件)
source devel/setup.bash
3.source在home里的.bashrc文件解决每次cmake工作区间后都要source的问题
A.首先,介绍一下Linux的环境配置文件----.bashrc文件
我的理解它是用来配置bash shell的,这个文件主要保存个人的一些个性化设置,如命令别名、路径等。如果在home下直接查找,是找不到的,因为.bashrc文件是隐藏文件,我们Ctrl+H一下就能看到所有的隐藏文件,包括.bashrc。下图中左上角第一个
B.可能说的有点难懂,下面我还是用我的工作区间racecar给大家演示一下。
双击.bashrc文件,打开后你会发现里面有很长的代码,不用管代码有多长,直接到文件最底部,因为我们的工作只是在.bahsrc文件里添加我们工作区间的环境。
a.添加格式
第一种,也是我最常用的直接波浪线再加工作区间的.bash文件路径
source ~/racecar/devel/setup.bash
最下面加一行就好,你可以加多个工作区间的.bash文件路径在里面,都会有效
第二种,写全部路径,从home/用户名/工作区间/.bash文件的路径
source /home/用户名/racecar/devel/setup.bash
b.每次你修改.bashrc文件后,要记得source一下.bashrc文件,一定不要忘,否则你的添加是无效的!
source ~/.bashrc
c.大功告成,这样以后你在编译工作区间时就不需要一次次的进行source,只cmake一下就好了
4. source在home里的.bashrc文件无效问题
前段时间,不知道什么原因,我在.bashrc文件中添加的环境变量失效了,哪怕我source多遍.bashrc文件都没有用,每次编译我的工作区间racecar时cmake都要再单独source一下。对于严谨的我来说,这个问题是不能出现的。(其实是为了偷懒,哈哈)
经过我的不断尝试,我发现了问题所在,下面这段代码
if [ -f /opt/ros/kinetic/setup.bash ]; then
. /opt/ros/kinetic/setup.bash
fi
这段代码也是在.bashrc代码的最底部,之前我的每一个工作区间的source路径前面都带了这一段代码,使得一些工作区间只能再从终端进行一遍遍source才能用。现在我只留一段上面的代码,把所有的source路径放在这段代码下面,就全能用了。
完美解决!
如果你在Ubuntu下用上述方法解决不了该问题,那就把你需要进行source的工作区间的.bash路径(或现在用的工作区间的.bash路径)放在.bashrc文件最末尾然后Ctrl+S保存,该问题就解决了。