为什么bash无法正确读取我的文件

时间:2019-10-27 02:47:29

标签: linux bash centos6

我正在尝试让我的脚本读取其中只有IP地址的文件。

我能够整理文件并获取IP,但是当我运行下面的脚本时,它又变空了。 权限不是问题,我以root用户身份运行脚本(我知道我不应该以root用户身份运行东西,但我想消除权限问题。)

我在做什么错??

TIME

3 个答案:

答案 0 :(得分:1)

如果您的文件仅包含一个IP,我建议使用:

#! /bin/bash
filename="/tmp/newhost.txt"
IFS= read -r line < "$filename"
echo "$line"

在这种情况下,文件是否包含尾随换行都没关系。

答案 1 :(得分:0)

我尝试了使用包含两个IP地址的文件的示例,该文件分别位于两行中,并且工作正常。

然后我发出:

echo -n "12.1.1.1" > myfile
while IFS= read -r line; do
  echo $line
done < myfile

...,它无法读取存储的单个IP。

正如“那个家伙”在切肉刀评论中指出的那样,我也猜想那是你的问题!

答案 2 :(得分:0)

似乎文件没有如上所述的尾随换行。提供的代码也有效。我没想到,我以为我快疯了。我使用了以前在其他文件上发布的原始代码,并且可以正常工作,但是随后它们又都包含了其他内容。

谢谢

filename="/tmp/newhost.txt"
IFS= read -r line < "$filename"
echo "$line"```