ROS中,利用.sh脚本启动多个终端,分别启动程序

最近做一个仿真,需要分别启动四个roslaunch文件,光source就很累了,便想着新建一个脚本.sh文件,一键启动他们得了

目录

0,前期工作

1,创建脚本

2,添加可执行权限

3,编辑文件内容

4,测试运行


0,前期工作

先介绍一下终端的一些信息,在终端输入:

gnome-terminal

看能否打开一个新的终端,理论上会直接弹出的。
同时,运行gnome-terminal有一些参数的要求,如下:

-t  终端的标题    //注意,有些版本不支持
-e 可以出现多次
-x 只能出现一次,在-x后面的所有内容,均认为是要执行的命令,所以可以出现空格
执行脚本后要保持标签不消失,需要加上exec bash 的命令,并用分号跟前面的命令隔开

因此最终.sh文件中命令的样式如下:

gnome-terminal -t "your_title" -x bash -c "roslaunch startup start.launch;exrc bash"

上面命令中,双引号里面“your_title”是新开的这个终端的标题、"roslaunch startup start.launch;exrc bash"是你要启动的程序指令,并不局限于roslaunch

了解完毕,开始新建我们自己的脚本文件

1,创建脚本

cd (你要新建.sh文件的目录)
touch (file+name)

例如start_sim.sh,后面均以他为例

touch start_sim.sh

2,添加可执行权限

sudo chmod +x start_sim.sh

3,编辑文件内容

不喜欢vim所以用gedit了

gedit start_sim.sh

进入编辑页面,编辑内容为你需要的即可

#!/bin/bash

cd /home/demo
source devel/setup.bash
{
gnome-terminal -t "xxxx(your_title_1)" -x bash -c "roslaunch xxxxx.launch;exec bash"
}&

sleep 5s
source devel/setup.bash
{
gnome-terminal -t "xxxx(your_title_2)" -x bash -c "roslaunch xxxxx.launch;exec bash"
}&

sleep 5s
source devel/setup.bash
{
gnome-terminal -t "xxxx(your_title_3)" -x bash -c "roslaunch xxxxx.launch;exec bash"
}&

然后保存,关闭

4,测试运行

还在这个目录下

./start_sim.sh 

成功

猜你喜欢

转载自blog.csdn.net/weixin_45498383/article/details/129519387