#!/bin/bash # 检查到未定义的变量则停止执行并报错 set -u SIMULATION_PATH="/home/cicv/work/pji_desktop/simulation" MAP2GAZEBO_LOG_PATH="$SIMULATION_PATH/logs/run_map2gazebo.log" MAP2GAZEBO_START_FLAG="map2gazebo running" # 激活conda环境 source activate simulation # 清除环境 ## kill ros节点 rosnode kill --all ## 删除历史日志 safe-rm "$MAP2GAZEBO_LOG_PATH" sleep 0.5 # 执行命令 command="cd $SIMULATION_PATH/catkin_map2gazebo && safe-rm -r build devel && catkin_make && source devel/setup.bash && roslaunch --screen map2gazebo map2gazebo.launch " nohup script -q -c bash -c "$command" > "$MAP2GAZEBO_LOG_PATH" 2>&1 & disown # 检查脚本启动标志 tail -F "$MAP2GAZEBO_LOG_PATH" | while read LINE; do if echo "$LINE" | grep -q "$MAP2GAZEBO_START_FLAG"; then # 此标志输出给前端,请勿删除或修改! echo "Service map2gazebo started." break fi done