【发布时间】:2014-08-01 19:37:46
【问题描述】:
我想在对sed 的调用中使用我的 Centos VM 的 $HOSTNAME,如下所示:
sed -i 's/Apache 2 Test Page/$HOSTNAME Test Page/g' /var/www/error/noindex.html
但这只是将Apache 2 Test Page 替换为$HOSTNAME Test Page...我知道我可以手动完成,但我有充分的理由希望这样做。
FWIW,我实际上是在一个从 Vagrantfile 调用的 bash 脚本中执行此操作,该脚本反过来提供多个 VM(每个都安装了 Apache2),以便我可以测试负载平衡功能HAProxy 的。所以我只想要一种简单的方法来区分我的 3 个 Web 服务器,并且我认为修改默认 Apache 页面是最简单的方法。
【问题讨论】:
-
将 sed's(
s///) 用双引号而不是单引号括起来以进行变量扩展。 -
@AvinashRaj 是的,这里也可以。我更喜欢我发布的解决方案,因为这样我就不必担心在 sed 命令中转义 shell 字符。 (在这种情况下这不是问题)
标签: linux bash unix sed hostname