1.sh腳本文件控制終端寫入命令
在SLAM算法中,每次啟動vins都需要起很多終端,盡管使用了超級終端Terminator可以終端內劃分看起來更加便捷,但是每次起算法的命令還是要自己輸入,已經被麻煩了兩年了,今天突然想寫寫一個shell腳本來實現一個簡單的自動化填充。
先創建一個muti_terminal_command.sh的腳本文件,可以用vim或者nano之類的(看不懂一點),我是用vsode中創建的。
#!/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設置中改),如果沒有修改的話,可以注釋掉。
這樣本身就已經節省很多時間了。
運行的時候只需要:
chmod +x muti_terminal_command.sh
./muti_terminal_command.sh