파일 [중복]의 항목 목록에 대해 bash에서 명령을 실행합니다.

파일 [중복]의 항목 목록에 대해 bash에서 명령을 실행합니다.

내가 사용하고 구축하는 하나 이상의 서버의 호스트 이름을 hostname_list나열하는 파일이 있습니다 . 이제 호스트 이름에 대해 명령을 실행 해야 합니다 . 테스트로서 목록에 있는 각 서버에 대해 ping을 실행하려고 합니다 .grepawksalttest.ping

for 루프로 시도해 보았지만 제대로 작동하지 않습니다.

나는 여러 가지 변형을 시도했습니다.

for i in hostname_list
do 
    salt $i test.ping
done

답변1

이것이 hostname_list한 줄에 1개의 호스트 이름을 포함하는 텍스트 파일이라고 가정하면 다음 명령을 사용할 수 있습니다.

while read -r line
do
    [[ -n "$line" ]] && salt $line test.ping
done < hostname_list

[[ -n "$line" ]]문은 다음 명령을 실행하기 전에 해당 줄이 비어 있는지 확인합니다.

관련 정보