利用.sh脚本启动终端不同命令

2023-12-13 13:59:46

1.创建start_init.sh脚本和授予权限

首先,确保你的脚本名称一致,并给予执行权限:

# 创建 start_init.sh 脚本并给予执行权限
sudo chmod +x start_init.sh

2.编写脚本 - 例子1: 启动ROS节点

1)Shebang和注释

#!/bin/bash

# 这是一个ROS节点启动脚本

2)导航到指定目录

# 切换到指定目录
cd /home/demo

3)启动ROS节点

# 定义了两个ROS节点,并在不同的终端标签页中启动它们
# 启动第一个 ROS 节点
source devel/setup.bash	
{
    gnome-terminal --title="Your_Title_1" -x bash -c "roslaunch xxxxx.launch; exec bash"
} &
sleep 5

# 启动第二个 ROS 节点
source devel/setup.bash
{
    gnome-terminal --title="Your_Title_2" -x bash -c "roslaunch xxxxx.launch; exec bash"
} &
sleep 5

4)解释shebang和启动节点的代码

在这里,#!/bin/bash 是 shebang 注释,指定了脚本应该使用的解释器。

3.编写脚本 - 例子2: 打开不同文件夹,执行不同命令

1)变量定义

#!/bin/bash

# 定义两个目录的路径
dir1="/home/li/图片/"
dir2="/home/li/下载/Clash.for.Windows-0.20.24-x64-linux/"

2)使用gnome-terminal打开终端标签页

# 使用 gnome-terminal 打开终端标签页
gnome-terminal --window --working-directory=${dir1} --title='dir1' --command="bash -c pwd;bash" \
--tab \
--working-directory=${dir2} --title='dir2' --command="bash -c ls;bash" \
--tab \
--working-directory=${dir2} --title='dir2' -- bash -c "ls; exec bash" \
--tab \
--working-directory=/home --title='run_eclipse' --command="bash -c code;bash"

3)解释变量和使用gnome-terminal的代码

这里定义了两个目录的路径,然后使用 gnome-terminal 打开了不同工作目录的标签页。注释提供了对每一行代码的解释。

4.测试运行

最后,测试脚本是否正常运行:

./start_init.sh

5.友情提示

在ROS中写脚本,如果涉及多次launch,则一定要用sleep做个延时。确保你的脚本在执行时不会因为依赖未完成而失败。

文章来源:https://blog.csdn.net/m0_53316604/article/details/134954921
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。