![이 bash 스크립트에 어떤 문제가 있나요? [복사]](https://linux55.com/image/139388/%EC%9D%B4%20bash%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%97%90%20%EC%96%B4%EB%96%A4%20%EB%AC%B8%EC%A0%9C%EA%B0%80%20%EC%9E%88%EB%82%98%EC%9A%94%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
어떤 이유로 이 스크립트(RHEL v6.9에서 실행됨)는 host_file의 첫 번째 줄만 처리합니다.
#!/bin/bash
process()
{
ssh $host ls
}
while IFS= read -r host
do
echo "Running $host"
process
echo "DONE $host"
done < host_file
#-------End of Script-----------------
$ cat host_file
server1
server2
답변1
ssh는 나머지 표준 입력을 먹습니다. 읽는 동안 루프에 대해 다른 파일 설명자를 사용합니다.
while IFS= read -u4 -r host
do
echo "Running $host"
process
echo "DONE $host"
done 4< host_file