将主机名命令的输出附加到 /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
相反。
这假定您要追加到文件的最后一行。
我在 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
相反。
这假定您要追加到文件的最后一行。