学习.sh文件的编写:
#!bin/bash
sudo cp -r ./apriltag ~/.gazebo/models
sudo unzip ./models.zip ~/.gazebo/models
sudo cp -r ./start_simulation.sh ~catkin_ws
然后给它可执行权限:
sudo chmod +x sim_env.sh start_simulation.sh
(这里给密码后后面也就不用了)
最后去执行;
./sim_env.sh
就能一次执行多个命令了。
这里还可以拓展学习一下:
#!/bin/bash
gnome-terminal -t “roscore” -x bash -c “roscore;exec bash”
注意,这里的-x bash 不能少
但是会有报错:
#选项“-x”已弃用并可能在 gnome-terminal 的后续版本中移除。
#使用“-- ”以结束选项并将要执行的命令行追加至其后。
通过一些实验还是掌握了一部分的规律,但是还完全不够,查了一下发现脚本编写还是有讲究的:
参考
首行都是:(注意别忘了/bin/bash)
#!/bin/bash
判断:
if 判断语句一 ; then
command1
elif 判断语句二; then
command2
else
command3
fi
4.一些命令
date 打印日期
sleep 3s 休眠3秒
ifconfig 查看ip
echo 输出信息
gnome-terminal 打开另一终端
gnome-terminal -t "new title" 设置标题
gnome-terminal -e ls -e或者-s是启动后自动执行命令,但是执行完终端会自动退出
```bash
gnome-terminal -- bash -c "ls; exec bash"
sudo pkill Xorg 注销
sudo shutdown -h now 关机
set 指令能设置所使用shell的执行方式,可依照不同的需求来做设置
执行脚本
```bash
1 subl test.sh
2 chmod +x test.sh
3 ./test.sh
作业:
编写一次执行多个命令的sh来初始化ubuntu18和20
编写一个运行gazebo_pkg和nav的导航脚本,完全不用自己输命令,只需要./的脚本
小鱼ros的脚本拿到(20版本吧大概,但是我现在已经安了,不好再安一次,用其他电脑来完成吧)
脚本不要太复杂,能执行一些简单的命令就好了,其实小鱼ros也是一堆脚本组成的。
阿杰的脚本:
#!/bin/bash
sudo apt install -y ros-noetic-desktop-full
sudo apt install -y ros-noetic-navigation
sudo apt install -y ros-noetic-joy
sudo apt install -y ros-noetic-gazebo-ros-control
sudo apt install -y ros-noetic-joint-state-controller
sudo apt install -y ros-noetic-position-controllers
sudo apt install -y ros-noetic-effort-controllers
sudo apt install -y ros-noetic-cv-bridge
sudo apt install -y ros-noetic-controller-manager
sudo apt install -y ros-noetic-hector-mapping
sudo apt install -y ros-noetic-gmapping