最近几天我第一次接触 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
您选择的用户名