【问题标题】:Add lines to /etc/hosts file在 /etc/hosts 文件中添加行
【发布时间】:2016-04-21 17:50:07
【问题描述】:

我有 RHEL,我希望运行一个 shell 脚本,它会在 /etc/hosts 文件中添加几行(超过 10 行)。 我尝试使用

sed -i "10.161.61.111 acr111" /etc/hosts 
sed -i "10.161.61.110 acr110" /etc/hosts

等等,但我明白了

sed:-e 表达式#1,字符 3:未知命令:`.'

知道如何解决这个问题吗? 或者可能是另一种运行 sh 文件的方式,它将主机添加到主机文件中? 谢谢,

【问题讨论】:

  • 额外数据从何而来?文件?多变的?脚本中的数据?
  • @Maya,您可以使用sed -i$ a 选项向/etc/hosts 添加新条目,请参阅stackoverflow.com/a/50003244/658497

标签: bash sed hosts


【解决方案1】:

您是否阅读过 sed 的手册页?您没有正确使用 -i 参数。

相反,你为什么不直接使用:

echo "10.161.61.111 acr111" >> /etc/hosts
echo "10.161.61.110 acr110" >> /etc/hosts

【讨论】:

    【解决方案2】:

    尝试this 将多行(>>)附加到/etc/fstab

    cat << EOF >> /etc/fstab
    10.161.61.111 acr111
    10.161.61.110 acr110
    10.161.61.109 acr109
    10.161.61.108 acr108
    EOF
    

    【讨论】:

      【解决方案3】:

      如果数据来自文件,请执行以下操作:

      cat newdata >> /etc/hosts
      

      如果数据来自变量:

      echo "$newdata" >> /etc/host
      

      【讨论】:

        【解决方案4】:

        你最喜欢包括 -i[SUFFIX], --in-place[=SUFFIX] 如下

        sed -i "3i10.161.61.111 acr111" /etc/hosts

        ni 是文本将出现的行号

        【讨论】:

          猜你喜欢
          • 2016-04-10
          • 2020-07-01
          • 2011-07-05
          • 1970-01-01
          • 2013-10-20
          • 1970-01-01
          • 2014-08-04
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多