用于远程 ssh 登录的交互式脚本

用于远程 ssh 登录的交互式脚本

最近几天我第一次接触 bash 脚本。我想创建一些非常简单的东西,让我连接到多个服务器/设备。我的想法是拥有一个包含 FQDN 和描述的所有设备的列表(txt 文件)。该脚本应读取列表并以列表形式显示所有设备(例如添加 ID)。然后我应该能够插入 ID 设备,然后脚本将我连接到该设备。我怎样才能做到这一点?

提前致谢。

答案1

您可以使用select命令:

#!/usr/bin/env bash

readarray -t servers < input_file.txt

[[ ${#servers[@]} -eq 0 ]] && exit 1

select server in "${servers[@]}"; do
   IFS= read -r -p "Enter username: " username
   ssh "${username:-default}@${server:-${servers[0]}}"
done
  • readarray将服务器存储在数组中。您还可以在没有文件的情况下手动存储服务器:servers=(server1.com server2.com)
  • select然后提示您输入与其中一台服务器对应的号码
  • 如果您输入错误的选项,${server:-${servers[0]}}将使用文件中的第一个服务器地址
  • read会提示输入用户名
  • 如果您输入空用户名(例如,在出现提示时按 Enter 键read),${username:-default}将使用default您选择的用户名

相关内容