![파일 [중복]의 항목 목록에 대해 bash에서 명령을 실행합니다.](https://linux55.com/image/178042/%ED%8C%8C%EC%9D%BC%20%5B%EC%A4%91%EB%B3%B5%5D%EC%9D%98%20%ED%95%AD%EB%AA%A9%20%EB%AA%A9%EB%A1%9D%EC%97%90%20%EB%8C%80%ED%95%B4%20bash%EC%97%90%EC%84%9C%20%EB%AA%85%EB%A0%B9%EC%9D%84%20%EC%8B%A4%ED%96%89%ED%95%A9%EB%8B%88%EB%8B%A4..png)
내가 사용하고 구축하는 하나 이상의 서버의 호스트 이름을 hostname_list
나열하는 파일이 있습니다 . 이제 호스트 이름에 대해 명령을 실행 해야 합니다 . 테스트로서 목록에 있는 각 서버에 대해 ping을 실행하려고 합니다 .grep
awk
salt
test.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" ]]
문은 다음 명령을 실행하기 전에 해당 줄이 비어 있는지 확인합니다.