我试图逐行读取文件(每行都是一个主机名),进行如下处理:
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
。如果只是一行的长度更长,我就会以不同的方式问这个问题。