#!/bin/bash # 检查参数数量 if [ "$#" -ne 3 ]; then echo "Error: Incorrect number of arguments" echo "Usage: $0 arg1 arg2 arg3" exit 1 fi SUDO_PASSWORD=$1 CONTAINER_NAME=$2 DOWNLOAD_FILE_PATH=$3 UPDATE_DATA_PATH="/home/cicv/work/pji_desktop/map_update/data" CONTAINER_WORKSPACE="/home/cartographer_detailed_comments_ws-master" # 清除历史文件 echo "$SUDO_PASSWORD" | sudo -S rm -rf $UPDATE_DATA_PATH/* # 解压地图更新对应的压缩包 unzip "$DOWNLOAD_FILE_PATH" -d "$UPDATE_DATA_PATH" # 检查容器启动状态 if [ "$(echo "$SUDO_PASSWORD" | sudo -S docker inspect -f '{{.State.Running}}' $CONTAINER_NAME)" = "true" ]; then echo "Container $CONTAINER_NAME is already running." else echo "Starting container $CONTAINER_NAME..." echo "$SUDO_PASSWORD" | sudo -S docker start "$CONTAINER_NAME" fi # 容器内执行地图更新脚本 echo "$SUDO_PASSWORD" | sudo -S docker exec "$CONTAINER_NAME" /bin/bash -c "source $CONTAINER_WORKSPACE/devel_isolated/setup.sh && $CONTAINER_WORKSPACE/build_map.sh $CONTAINER_WORKSPACE/config.json"