在研究ROS的时候,经常为启动多个节点或者多个launch文件而发愁。
因此写.sh脚本是一个很好的选择。
而最近在写.sh脚本的时候,为了满足其中一个终端在执行,新开另一个终端并行执行的情况,
涉及“.sh脚本如何新开终端执行”
方式:
gnome-terminal -t "title-name" -x bash -c "./gmappingSTEP2.sh;exec bash;"
其中,title-name为新开终端的名字,./gmappingSTEP2.sh是新开的终端中要执行的命令。这里我为了需要在新终端执行一个脚本因此输入了./gmappingSTEP2.sh。exec bash保证了终端运行结束后不关闭。
最终我的新脚本如下:
gnome-terminal -t "title-name" -x bash -c "./gmappingSTEP2.sh;exec bash;"
sleep 2
./gmappingSTEP1.sh
友情提示
在ROS中写脚本,如果涉及多次launch,则一定要用sleep做个延时(如sleep 2
)。否则会报错。报错内容如下:
run_id on parameter server does not match declared run_id: 686cb5dc-01cf-11e9-ab7c-b10995016401 vs 68b27f9a-01cf-11e9-ab7c-b10995016401