将主机名命令的输出附加到 /etc/hosts

Append Output of Hostname Command to /etc/hosts

我在 Amazon Elastic Beanstalk 中有一个服务器,其中 hostname 命令输出的主机名不是完整的域并且不存在于 /etc/host 文件中。

我正在使用一些出于某种原因依赖系统主机名才能工作的软件。

我想将 hostname 命令的输出附加到引用本地计算机的 /etc/hosts 文件。

现在我有一个如下所示的主机文件:

127.0.0.1 localhost localhost.localdomain

我是运行这样的命令附加到文件。

hostname | tr '\n' ' ' >> /etc/hosts

问题是主机名附加为换行符。像这样:

127.0.0.1 localhost localhost.localdomain
ip-10-0-1-162

我希望它附加到同一行。

您可以使用sed编辑文件的第一行:

sed -i "1s/$/ $(hostname | tr '\n' ' ')/" /etc/hosts

你可以使用像

这样的东西
echo "`cat /etc/hosts` `hostname`"

您可以直接将其写回 /etc/hosts,但我宁愿将其写入临时文件,然后替换 /etc/hosts 那个.

如果您不想在文件末尾换行,请使用

echo -n

相反。

这假定您要追加到文件的最后一行。