ubuntu通过.sh实现快捷启动 您所在的位置:网站首页 ubuntu远程连接ssh打开多个终端 ubuntu通过.sh实现快捷启动

ubuntu通过.sh实现快捷启动

2024-02-18 19:32| 来源: 网络整理| 查看: 265

实例 touch hotel_robot.sh gedit ./hotel_robot.sh

hotel_robot.sh中内容如下:

#!/bin/bash # --- for every Terminal-tab source ~/.bashrc # load ~/.bashrc setup source /mnt/hgfs/linux_share/ros_project/home_robot_ws/devel/setup.bash # ros workspace { gnome-terminal --tab "XXD_ros" -- bash -c "roscore;exec bash" }& sleep 2s { gnome-terminal --tab "XXD_demo" -- bash -c "roslaunch home_robot_moveit_config demo.launch;exec bash" }& sleep 4s { gnome-terminal --tab "XXD_fk" -- bash -c "rosrun hr_task_planning plan_arm_fk_node;exec bash" # gnome-terminal --tab "XXD_ros" -- bash -c 'export RUN_AFTER_BASHRC="rosrun hr_task_planning plan_arm_fk_node;exec bash"' }& sleep 2s { gnome-terminal --tab "XXD_imu" -- bash -c "rostopic echo /joint_states;exec bash" }

赋予执行权限

sudo chmod 777 *

运行

./hotel_robot.sh

gnome-terminal使用介绍

基础用法见: 

gnome-terminal使用_ZONGXP的博客-CSDN博客_gnome-terminal

废弃命令提示:

-x和-e已经被弃用了,所以取而代之的是 - -符号,还有就是 bach -c这条命令,因为是在新启动的终端里执行bash -c,即启动子shell,所以总体的代码就应该如下:

gnome-terminal --tab -- bash -c "_bash_cmd;exec bash"

这里的&符号是&切换到后台运行,防止阻塞当前进程的,让进程异步执行。由此可知shell也是多进程模型,而js脚本是单进程模型。

示例:

gnome-terminal --tab -- bash -c "ifconfig;exec bash" gnome-terminal --tab -- bash -c "ls;exec bash"

 

 使用.bashrc中的配置

1. 需要注意的是,gnome-terminal --tab -- bash -c "_bash_cmd;exec bash" 执行的命令,是在调用 .bashrc 之前的,所有 .bashrc 的所有配置都无效,如果需要用到.bashrc里面的内容,有个变通的办法,在.bashrc最后加上一句

--------------------.bashrc-------------------- 其他内容 #最后加上这句 evel "$RUN_AFTER_BASHRC" -----------------------------------------------

然后在写命令的时候,修改RUN_AFTER_BASHRC这个变量,就可以实现让.bashrc调用这个命令

$ gnome-terminal -- bash -c 'export RUN_AFTER_BASHRC="_bash_cmd_"; exec bash'

这样虽然可以先加载.bashrc配置,再执行_bas_cmd_指令,但由于.bashrc的加载默认是在后台运行的,_bas_cmd_也会在后台运行,打印输出无法查看。

2. 如在.sh文件中,启动多个终端和程序,可以显式加载.bashrc配置

#!/bin/bash # --- for every Terminal-tab source ~/.bashrc # load ~/.bashrc setup # --- other _bash_cmd

 参考

在ubuntu/linux下利用qt启动终端并执行命令/执行外部程序或者脚本/gnome-termianl使用,gnome-terminal -x弃用_世纪末的魔术师的博客-CSDN博客



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有