#!/bin/bash # 定义一个函数来停止每个服务器的 screen 会话 stop_server() { server_name=$1 echo "Stopping $server_name" # 如果存在具有相同名称的 screen 会话,将其终止 existing_session=$(screen -ls | grep -w "$server_name") if [ -n "$existing_session" ]; then echo "Terminating screen session for $server_name" screen -S "$server_name" -X quit else echo "No screen session found for $server_name" fi } # 列出所有服务器目录 server_dirs=() # 初始化一个空数组 for dir in server/*/ ; do # 遍历 "server/" 下的所有子目录 dir=${dir%*/} # 删除末尾的 "/" dir=${dir##*/} # 删除开头的 "server/" server_dirs+=("$dir") # 添加到数组 done # 停止每个服务器的 screen 会话 for server_dir in "${server_dirs[@]}"; do stop_server $server_dir done