关于.bashrc和setup.bash的理解

news2024/10/2 16:28:00

在创建了ROS的workspace后,需要将workspace中的setup.bash文件写入~/.bashrc 文件中,让其启动:

source /opt/ros/melodic/setup.bash

这句话的目的就是在开新的terminal的时候,运行这个setup.bash,而这个setup.bash的作用是让一些ROS* 开头的命令可以使用

在工作空间的devel文件夹中存在几个setup.*sh形式的环境变量设置脚本。使用source命令运行这些脚本文件,则工作空间的环境变量设置可以生效(如可以找到该工作空间内的项目)。

source devel/setup.bash

也就是说要运行自己的一个代码,就要source下这个:source devel/setup.bash

当然也可以把他加入到.bashrc中,这样就不用每次都source自己的程序了(对应下面第二行)

 

 上面两个图就是对应关系

.bashrc

是home目录下的一个shell文件,用于储存用户的个性化设置。

.bashrc在每次打开新的终端时都会被读取,所以我们在运行ROS的某些代码的时候,

可以使用export设置环境变量

export <环境变量名>=<值>

上面的命令会覆盖掉环境变量原有值,如果想给同一个环境变量赋予多个值,需要借助以下语法

export THEPATH=$THEPATH:</path>
eg:export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/gzy/catkin_ws/src/ORB_SLAM2/Examples/ROS

你对 .bashrc 所做的任何修改将在下一次启动终端时生效。如果你想立刻生效的话,运行下面的命令:

source ~/.bashrc

如果用户删除了.bashrc,可以从如下路径拷贝一份原始的.bashrc文件到用户home目录下

cp /etc/skel/.bashrc ~/

setup.bash

创建了ROS 的workspace之后,需要将workspace中的setup.bash文件写入~/.bashrc 文件中,让

其启动,就像这个样子:

source /opt/ros/kinetic/setup.bash

这句的目的就是在开新的terminal的时候,运行这个setup.bash,而这个setup.bash的作用是让一些ROS* 开头的命令可以使用。同时还能够创建一些ROS开头的环境变量,比如:

ROS_PACKAGE_PATH  

我们可以在终端输入echo $ROS_PACKAGE_PATH来查看变量的值

当你使用rospack find {packagename}这个语句搜索路径的时候,就会在它会依据ROS_PACKAGE_PATH 所提供的功能包路径里去寻找,不在这个环境变量里的路径就不会去寻找了,即便你有这个功能包,也会显示找不到。

同理当我们rosrun某个包的时候,也需要对应代码所在的工作环境的路径在ROS_PACKAGE_PATH当中。

参考:ROS 中setup.bash_robinhjwy的博客-CSDN博客

ROS中的setup.bash_泠山的博客-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/380295.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【2373. 矩阵中的局部最大值】

来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 描述&#xff1a; 给你一个大小为 n x n 的整数矩阵 grid 。 生成一个大小为 (n - 2) x (n - 2) 的整数矩阵 maxLocal &#xff0c;并满足&#xff1a; maxLocal[i][j] 等于 grid 中以 i 1 行和 j 1 列为中心的 3 …

搭建私人《我的世界》服务器,使用Cpolar内网穿透更简单

文章目录1.前言2.本地服务器搭建2.1 设置环境变量2.2 进行《我的世界》服务器端设置2.3 测试和使用3.本地MC服务器的内网穿透3.1.Cpolar云端设置3.2.Cpolar本地设置3.3.测试和使用4.结语1.前言 要说去年游戏圈的重磅大瓜&#xff0c;想必网易和暴雪的分家必能上榜。虽然两家大…

元宇宙对体育运动意味着什么?

欢迎来到Hubbleverse &#x1f30d; 关注我们 关注宇宙新鲜事 &#x1f4cc; 预计阅读时长&#xff1a;8分钟 本文仅代表作者个人观点&#xff0c;不代表平台意见&#xff0c;不构成投资建议。 Facebook将其品牌重塑为“Meta”&#xff0c;“元”的概念推向了主流&#xff…

如何退出PPT文件的“只读模式”?

PPT文件设置了“只读模式”&#xff0c;打开文件就会弹出对话框&#xff0c;提示【输入密码以修改或以只读方式打开】。 如果有密码&#xff0c;输入密码后可以正常修改编辑PPT&#xff0c;但下次再打开时仍旧会出现提示框&#xff1b;如果没有密码&#xff0c;选择【只读】可…

第十五届(2022年)山东省职业院校技能大赛高职组信息安全管理与评估竞赛试题

第十五届&#xff08;2022年&#xff09;山东省职业院校技能大赛高职组信息安全管理与评估 竞赛试题 第一阶段竞赛项目试题 根据信息安全管理与评估技术文件要求&#xff0c;第一阶段为网络平台搭建与网络安全设备配置与防护。本文件为信息安全管理与评估项目竞赛-第一阶段试题…

【正点原子FPGA连载】第二十一章AXI DMA环路测试 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南

1&#xff09;实验平台&#xff1a;正点原子MPSoC开发板 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id692450874670 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html 第二十一章AXI D…

全网资料最全Java数据结构与算法-----算法分析

算法分析 研究算法的最终目的就是如何花更少的时间&#xff0c;如何占用更少的内存去完成相同的需求&#xff0c;并且也通过案例演示了不同算法之间时间耗费和空间耗费上的差异&#xff0c;但我们并不能将时间占用和空间占用量化&#xff0c;因此&#xff0c;接下来我们要学习…

Keil新建一个国民32位MCU工程

1.打开Keil软件&#xff0c;点击Project→New uVision→Project 2.将工程保存到自己的工程文件夹&#xff0c;并给项目命名&#xff0c;点击保存 3.选择自己需要开发的芯片&#xff0c;点击OK 4.点击OK 5.出现上图所示&#xff0c;工程已经建好了&#xff0c;点击配置工程。 6.…

用Python实现九九乘法表的几种方式,最简单只需一行代码

前言 嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! 我们在学习Python的过程中需要不断的积累和练习&#xff0c;这样才能够走的更远&#xff0c; 今天一起来学习怎么用Python写九九乘法表~ 更多教程源码资料电子书: 点击此处跳转文末名片获取 第一种方法、for-for 代码&…

大数据处理学习笔记1.6 Scala数据结构

文章目录零、本讲学习目标一、数组 (Array)&#xff08;一&#xff09;定长数组1、数组定义&#xff08;1&#xff09;定义数组时初始化数据&#xff08;2&#xff09;定义时指定数组长度&#xff0c;后赋值2、数组遍历&#xff08;1&#xff09;传统for循环方式&#xff08;2&…

JavaSE:异常机制

异常概念异常发生的原因用户输入非法数据要打开的文件不存在网络中断/JVM内存溢出&#xff08;JVM是JRE的一部分。它是一个虚构出来的计算机&#xff09;除0、非法参数等三种类型的异常&#xff0c;用以理解异常检查性异常【otherException】&#xff1a;程序员无法预见的&…

Linux权限相关知识(大量图文展示,及详细操作)

Linux权限相关概念 Linux下有两种用户&#xff1a;一种是超级用户&#xff08;root&#xff09;、一种是普通用户。 超级用户&#xff1a;可以在linux系统下做任何事情&#xff0c;不受限制 普通用户&#xff1a;在linux下做有限的事情。 超级用户的命令提示符是“#”&#xf…

关于excel文件导入的bug总结

从项目中获取到模板文件&#xff0c;更名 “external_platform_account_template.xls” &#xff0c;注意此时我只改了文件名没改文件属性。 文件填充内容如下&#xff1a; postman调用导入接口本地测试报错&#xff0c;错误如下&#xff1a; 报错信息&#xff1a; The supp…

微信扫码登录

一、准备工作 微信开发者平台&#xff1a;https://open.weixin.qq.com 1、注册 2、邮箱激活 3、完善开发者资料 4、开发者资质认证&#xff1a;仅能企业注册&#xff08;后面提供学习的使用渠道&#xff09;准备营业执照&#xff0c;1-2个工作日审批、300元 5、创建网站应用&…

leetcode 61~70 学习经历

leetcode 61~70 学习经历61. 旋转链表62. 不同路径63. 不同路径 II64. 最小路径和65. 有效数字66. 加一67. 二进制求和68. 文本左右对齐69. x 的平方根70. 爬楼梯小结61. 旋转链表 给你一个链表的头节点 head &#xff0c;旋转链表&#xff0c;将链表每个节点向右移动 k 个位置…

【论文精读】Benchmarking Deep Learning Interpretability in Time Series Predictions

【论文精读】Benchmarking Deep Learning Interpretability in Time Series Predictions Abstract Saliency methods are used extensively to highlight the importance of input features in model predictions. These methods are mostly used in vision and language task…

嵌入式 Linux多进程

目录 一、Linux进程概述 1、进程标识 2、进程的运行身份 3、进程的状态 4、Linux下进程的结果及管理 5、一些进程相关信息&相关命令 进程process&#xff1a; 进程相关命令&#xff1a; 二、Linux进程创建与控制 1、fork进程创建函数 2、进程的终止 3、wait和wa…

react setState学习记录

react setState学习记录1.总体看来2.setState的执行是异步的3.函数式setState1.总体看来 (1). setState(stateChange, [callback])------对象式的setState 1.stateChange为状态改变对象(该对象可以体现出状态的更改) 2.callback是可选的回调函数, 它在状态更新完毕、界面也更新…

【微信小程序】-- WXSS 模板样式- 全局样式和局部样式(十四)

&#x1f48c; 所属专栏&#xff1a;【微信小程序开发教程】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &…

taobao.opensecurity.isv.uid.get( 获取open security uid for isv )

&#xffe5;免费不需用户授权 根据 open_uid 获取 open_uid_isv 用于同一个 isv的多个app间数据关联 公共参数 请求地址: HTTP地址 http://gw.api.taobao.com/router/rest 公共请求参数: 点击获取key和secret 请求示例 TaobaoClient client new DefaultTaobaoClient(url, a…