利用.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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!