![원격 SSH 로그인을 위한 대화형 스크립트 [닫기]](https://linux55.com/image/123869/%EC%9B%90%EA%B2%A9%20SSH%20%EB%A1%9C%EA%B7%B8%EC%9D%B8%EC%9D%84%20%EC%9C%84%ED%95%9C%20%EB%8C%80%ED%99%94%ED%98%95%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%20%5B%EB%8B%AB%EA%B8%B0%5D.png)
지난 며칠 동안 저는 처음으로 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