MAC 电脑 使用iterm2 远程连接服务器, 配置多台服务器(可以选择)

可以选择服务器

可以高亮显示选中的服务器

#!/bin/bash

# 服务器列表
servers=("server1" "server2" "server3")

# 获取菜单项数量
menu_length=${#servers[@]}

# 初始化选择索引
selected_index=0

# 清除屏幕
clear

# 定义高亮显示函数
highlight() {
	#  echo -e "\e[1m$1\e[0m" # 使用ANSI转义序列高亮显示文本
#  	echo "\033[1;97;41m$1\033[0m" #  红色背景色
#  	echo "\033[38;5;202m$1\033[0m" #  橘红
#  	echo "\033[48;5;202m$1\033[0m" #  橘红背景色
#  	echo "\033[7m$1\033[0m" # 使用反色(白色前景色)高亮显示文本
#    echo  "\033[7;97;48;5;208m$1\033[0m" # 使用反色和橘红色字体高亮显示文本
    echo  "\033[48;5;208;97m$1\033[0m" # 使用橘红色背景和白色字体高亮显示文本
}

# 定义到连接服务器的方法
connect_to_server() {
  local server=$1
  # 在这里添加连接到选定服务器的命令
  # 示例:ssh user@hostname
  # 替换为你实际的连接命令 # 我这里有相应的脚本 所以直接调用这个脚本
  #  ssh user@hostname
  # 连接到服务器
}
# 循环显示菜单
while true; do
  # 移动光标到第一行
  tput cup 0 0

  # 打印菜单项
  for ((i = 0; i < ${menu_length}; i++)); do
    if [ $i -eq $selected_index ]; then
      highlight "> ${servers[$i]}" # 高亮显示选中项
    else
      echo "  ${servers[$i]}"
    fi
  done

  # 读取用户输入并禁止回显
  read -s -n 1 key

  # 处理用户输入
  case $key in
  "A") # 上箭头
    selected_index=$(((selected_index - 1 + menu_length) % menu_length))
    ;;
  "B") # 下箭头
    selected_index=$(((selected_index + 1) % menu_length))
    ;;
  "D") # 左箭头
    selected_index=0
    ;;
  "C") # 右箭头
    selected_index=$((menu_length - 1))
    ;;
  "") # 回车键
    selected_item="${servers[$selected_index]}"
    if [ "$selected_item" = "Quit" ]; then
      echo "退出"
      break
    else
      # 在这里添加连接到选定服务器的命令
      connect_to_server "$selected_item"
      break
    fi
    ;;
  esac
done

猜你喜欢

转载自blog.csdn.net/hyrylt/article/details/131512274