当读取 -r 行时,无法从该 while 循环内的 if 访问 $line

当读取 -r 行时,无法从该 while 循环内的 if 访问 $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。如果只是一行的长度更长,我就会以不同的方式问这个问题。

相关内容