You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在bash脚本中用switch case集成Tart工具的启动与关闭功能

Tart启停整合脚本实现方案

核心改造逻辑

  • 调整入参规则:第一个参数为操作类型(start/stop),第二个参数为Tart编号列表
  • 保留原编号与IP映射的switch case逻辑,IP动态匹配无需硬编码
  • 新增外层switch case分支,分别匹配启动、关闭操作执行对应逻辑

完整整合代码

#!/bin/bash

# 第一个入参为操作类型:start/stop,第二个入参为Tart编号列表
OP_TYPE=$1
tart_array=($2)
# 统一管理密码,后续修改更方便
TART_PWD="tart123"

ip=()
tarts=()

for i in ${tart_array[@]}; do
        echo "Tart #: $i"
        # 原逻辑保留:编号匹配对应IP
        case "$i" in
                1)
                IP=10.171.0.10
                ;;
                2)
                IP=10.171.0.11
                ;;
                3)
                IP=10.171.0.12
                ;;
                4)
                IP=10.171.0.13
                ;;
                5)
                IP=10.171.0.14
                ;;
                *)
                echo "Invalid TARTS '$i'" >&2;
                exit 1
                ;;
        esac
        # 修正原脚本IP赋值语法问题
        ip+=($IP)
        tarts=(${tart_array[@]})

        # 新增外层switch case,根据操作类型执行对应逻辑
        case "$OP_TYPE" in
                "start")
                        echo "    ----  启动Tart $i  ----  "
                        sshpass -p "$TART_PWD" ssh -Y -X -L 5900:$IP:5901 tarts@$IP <<EOF1
                        export DISPLAY=:1
                        gnome-terminal -e "bash -c \"pwd; cd /home/tarts; pwd; ./launch_tarts.sh exec bash\""
                        exit
EOF1
                ;;
                "stop")
                        echo "    ----  关闭Tart $i  ----  "
                        sshpass -p "$TART_PWD" ssh -tt -o StrictHostKeyChecking=no tarts@$IP <<EOF
                        . ./tartsenvironfile.8.1.1.0
                        nohup yes | kill_tarts mcgdrv &
                        nohup yes | kill_tarts server &
                        pkill -f traf
                        pkill -f terminal-server
                        exit
EOF
                ;;
                *)
                        echo "无效操作类型,请输入 start 或 stop" >&2
                        exit 1
                ;;
        esac
done

使用方法

  1. 给脚本添加执行权限:chmod +x tart_manager.sh
  2. 启动指定Tart:./tart_manager.sh start "1 3 5"
  3. 关闭指定Tart:./tart_manager.sh stop "2 4"

内容的提问来源于stack exchange,提问作者Asad Javed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 15:36:04