過去数日間、私は初めて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