쉘 스크립트에서 for 루프 실행

쉘 스크립트에서 for 루프 실행

이를 달성하는 가장 좋은 방법이 무엇인지 알고 싶습니다.

다음 데이터가 포함된 파일이 있습니다.

server1   
chl(abc.123) chltype(RCVR)
chl(xyz.123) chltype(RCVR)
server2
chl(abc.000) chltype(RCVR)
chl(abc.999) chltype(RCVR)
chl(xyz.456) chltype(RCVR)

이제 이 작업을 수행하기 위한 스크립트를 실행하고 싶습니다.

서버 1에 SSH로 연결하고 서버 1에 나열된 명령에 대해 다음 명령을 실행한 다음 서버 2에 SSH로 연결하고 서버 2에 나열된 명령에 대해 다음 명령을 실행합니다.

예를 들어 서버 1에서

echo chl(abc.123) chltype(RCVR)

답변1

다음을 수행할 수 있습니다.

while IFS= read -r line; do
    if [[ ${line} =~ ^server\d+$ ]] ; then
        server=${line}
        continue
    fi
    ssh ${server} "echo ${line}"
done

파일 형식이 변경되지 않았다고 가정합니다.

관련 정보