-r line을 읽을 때 while 루프 내부에서 $line에 액세스할 수 없습니다.

-r line을 읽을 때 while 루프 내부에서 $line에 액세스할 수 없습니다.

파일을 한 줄씩 읽고(각 줄은 호스트 이름임) 다음과 같이 처리하려고 합니다.

while read -r line
do 
  if ping -c1 $line
     echo $line is running  
  fi 
done <file.txt 

내가 찾은 결과는 다음과 같았다.

  is running
  is running 
  ...

변수가 비어 있는 것과 같습니다 $line.

이 문제에 대해 의견을 주신 모든 분들께 감사드립니다. 이제 무슨 일이 일어나고 있는지 알 것 같아요.

따라서 파일에는 CRLF 줄 끝이 있습니다. 그리고 선의 길이도 똑같습니다 is running.

끝에 있는 CR 문자로 인해 $line의 내용을 $line완전히 덮어씁니다 is running. 한 줄만 더 길었다면 질문을 다르게 했을 것입니다.

관련 정보