지난 며칠 동안 저는 처음으로 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