1.sh脚本文件控制终端写入命令
在SLAM算法中,每次启动vins都需要起很多终端,尽管使用了超级终端Terminator可以终端内划分看起来更加便捷,但是每次起算法的命令还是要自己输入,已经被麻烦了两年了,今天突然想写写一个shell脚本来实现一个简单的自动化填充。
先创建一个muti_terminal_command.sh的脚本文件,可以用vim或者nano之类的(看不懂一点),我是用vsode中创建的。
powershell
#!/bin/bash
# 启动终端模拟器
terminator &
sleep 0.5
# xdotool key Alt+m
# sleep 1
# 发送快捷键Ctrl+Shift+e来划分窗格(水平方向)
xdotool key Ctrl+Shift+e
xdotool key Ctrl+Shift+o
xdotool key Ctrl+Tab
xdotool key Ctrl+Shift+o
# 激活第一个窗格(左上角)并输入第一个命令
xdotool key Ctrl+Tab
xdotool type "roslaunch vins_estimator nova3.launch"
xdotool key Return
sleep 0.5
# 激活第二个窗格(右上角)并输入第二个命令
xdotool key Ctrl+Tab
xdotool type "roslaunch vins_estimator vins_rviz.launch"
xdotool key Return
sleep 0.5
# 激活第三个窗格(左下角)并输入第三个命令
xdotool key Ctrl+Tab
xdotool type "rosbag play test.bag"
注意:这里我最大化了窗口命令:xdotool key Alt+m,是因为事先把最大化快捷键改成了Alt+m(需要再Ubuntu设置中改),如果没有修改的话,可以注释掉。
这样本身就已经节省很多时间了。
运行的时候只需要:
bash
chmod +x muti_terminal_command.sh
./muti_terminal_command.sh