ubuntu下通过命令打开多个终端并在相应终端执指令

有时候我们在ubantu下每次运行一个工程时都需要打开多个终端,这对我们调试而言很不方便。比如我的另一篇博客 SVO-REMODE编译运行方法
,需要打开5个终端,并执行相应指令。很容易想到,如果能写一个脚本,运行这个脚本就能够帮我们开启多个终端并执行相应的指令就好了。上网搜了一下,方法如下:
指令:

gnome-terminal -x bash -c "子终端要执行的命令1;2;...."


在一个终端执行上述命令的效果就是,会打开一个新的终端,并在新的终端执行"子终端要执行的命令"(注意:多条命令用分号隔开),然后退回原来的终端。子终端执行完其命令会自动退出。
现在我们就可以这样运行博客SVO-REMODE编译运行方法中的工程。
先写一个脚本
svo_remode.sh

cd 
gnome-terminal -x bash -c "roscore"


gnome-terminal -x bash -c "rosbag play /media/baohua/media/SLAM_DATA/px4_2_fly_over_debris.bag"


gnome-terminal -x bash -c "rosrun rviz rviz -d /home/baohua/project/SLAM/REMODE_SVO/catkin_ws/src/rpg_open_remode/open_remode.rviz  "


gnome-terminal -x bash -c "roslaunch rpg_open_remode px4_2.launch "



然后随便打开一个终端

cd $path(svo_remode.sh)
chmod +x svo_remode.sh//给此脚本赋权限,以后再运行此脚本就不用做了


以后运行程序,只需要就执行下列命令就可以啦

cd $path(svo_remode.sh)
./svo_remode.sh



原文地址:https://www.cnblogs.com/zhubaohua-bupt/p/7182806.html