-r line を読み取ると、while ループ内で $line にアクセスできません。

-r line を読み取ると、while ループ内で $line にアクセスできません。

ファイルを1行ずつ読み取り(各行はホスト名)、次のように処理しようとします。

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。一行だけ長かったら質問を違うようにしたはずです。

関連情報