linux 用脚本打开多个terminal和多个标签页并分别执行命令

9 篇文章 0 订阅

linux 用脚本打开多个terminal和多个标签页并分别执行命令

#! /bin/bash

source /opt/ros/kinetic/setup.bash
source /home/yake/catkin_ws/devel/setup.bash 

gnome-terminal -x bash -c "roslaunch kinova_bringup kinova_robot.launch kinova_robotType:=j2n6s200; exec bash; "
sleep 5

gnome-terminal --window -e 'bash -c "rosrun kinova_demo pose_action_client.py -v j2n6s200 mq 0.310199 0.202714 -0.082002 -0.73323 0.0342688 -0.0189734 0.678851;sleep 7;exec bash"' --tab -e 'bash -c "rosrun cv_camera cv_camera_node _device_id:=1;sleep 4; exec bash;"'

gnome-terminal --window -e 'bash -c "rosrun obj_tracking obj_tracking_node_pubuv; exec bash;sleep 4;exec bash"'

关键代码行为

gnome-terminal --window -e 'bash -c "rosrun kinova_demo pose_action_client.py -v j2n6s200 mq 0.310199 0.202714 -0.082002 -0.73323 0.0342688 -0.0189734 0.678851;sleep 7;exec bash"' --tab -e 'bash -c "rosrun cv_camera cv_camera_node _device_id:=1;sleep 4; exec bash;"'

--window表示打开一个终端窗口,--tab在其中新开辟一个标签页,如果还要加tab页就继续--tab。-x 只能出现一次,-e excute可以出现多次,要注意-e后面只能有一个参数,也就是说如果有空格,需要用引号。

[打开一个terminal并预先输好一段文字]

这个需求比较偏门,解决方法不错,就是利用expect这个工具,新建一个名为myprompt文件,包含的程序如下

#!/usr/bin/expect
#trap sigwinch and pass it to the child we spawned
#this allows the gnome-terminal window to be resized
trap {
  set rows [stty rows]
    set cols [stty columns]
    stty rows $rows columns $cols < $spawn_out(slave,name)
} WINCH
set arg1 [lindex $argv 0]
# Get a Bash shell
spawn -noecho bash
# Wait for a prompt
expect "$ "
# Type something
send $arg1
# Hand over control to the user
interact
exit

调用方法(注意文件的路径要写全),将引号内得内容帮你提前输入到terminal,确认没问题后,回车就可以执行啦~~:

gnome-terminal -e "./myprompt \"rosrun kinova_yake camera_serviceMove_EyeInHand\""

最后我的文件代码如下

#! /bin/bash

source /opt/ros/kinetic/setup.bash
source /home/yake/catkin_ws/devel/setup.bash 

gnome-terminal -x bash -c "roslaunch kinova_bringup kinova_robot.launch kinova_robotType:=j2n6s200; exec bash; "
sleep 5

gnome-terminal --window -e 'bash -c "rosrun kinova_demo pose_action_client.py -v j2n6s200 mq 0.310199 0.202714 -0.082002 -0.73323 0.0342688 -0.0189734 0.678851;sleep 7;exec bash"' --tab -e 'bash -c "rosrun cv_camera cv_camera_node _device_id:=1;sleep 4; exec bash;"'

gnome-terminal --window -e 'bash -c "rosrun obj_tracking obj_tracking_node_pubuv; exec bash;sleep 4;exec bash"'

gnome-terminal -e "./myprompt \"rosrun kinova_yake camera_serviceMove_EyeInHand\""

 感觉terminal还是有点乱,下次看看能否限制窗口位置,或者使用terminator来执行脚本。

参考致谢:

https://blog.csdn.net/zong596568821xp/article/details/78623130

https://blog.csdn.net/qianzongCui/article/details/77877322

 https://blog.csdn.net/swust_long/article/details/7285147

========================

kinova_cnn_grasp.sh


#! /bin/bash

source /opt/ros/kinetic/setup.bash
source /home/user/catkin_ws/devel/setup.bash
source /home/user/baxter_ws/devel/setup.bash
source /home/user/kinova_ws/devel/setup.bash

# Kinova
{
gnome-terminal -x bash -c "roslaunch kinova_bringup 1kinovaJaco.launch;exec bash"
}&
sleep 3

# RealSense
{
gnome-terminal -x bash -c "roslaunch realsense2_camera rs_d435_camera_with_model.launch initial_reset:=true;exec bash"
}&
sleep 3

# Hand-eye calibration data
{
gnome-terminal -x bash -c "roslaunch kinova_yake realsense_in_hand.launch;exec bash"
}&
sleep 3

# Depth image to meter
{
gnome-terminal -x bash -c "roslaunch ggcnn_kinova_grasping wrist_camera_realsense.launch;exec bash"
}&
sleep 3

# cnn inference
{
gnome-terminal -x bash -c "rosrun ggcnn_kinova_grasping run_ggcnn.py;exec bash"
}&
sleep 3

# Robot move
{
gnome-terminal -x bash -c "rosrun ggcnn_kinova_grasping kinova_open_loop_grasp_key.py;exec bash"
}&
sleep 3

 

  • 5
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yaked19

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值