在sed替换中使用$ HOSTNAME

ste*_*och 3 unix linux bash sed hostname

我想在调用中使用我的Centos VM的$ HOSTNAME,sed如下所示:

sed -i 's/Apache 2 Test Page/$HOSTNAME Test Page/g' /var/www/error/noindex.html
Run Code Online (Sandbox Code Playgroud)

但是,这只是替换Apache 2 Test Page$HOSTNAME Test Page......我知道我可以做手工,但我有一个很好的理由为希望做这种方式.


FWIW,我实际上是在一个bash脚本中执行此操作,该脚本从Vagrantfile调用,后者又提供多个VM(每个都安装了Apache2),以便我可以测试HAProxy的负载平衡功能.所以我只想要一种简单的方法来区分我的3个Web服务器,而且我认为修改默认的Apache页面是最简单的方法.

Avi*_*Raj 7

附上seds///用双引号代替单引号的变量扩展.

sed -i "s/Apache 2 Test Page/$HOSTNAME Test Page/g" /var/www/error/noindex.html
Run Code Online (Sandbox Code Playgroud)

例:

$ echo 'foo Apache 2 Test Page bar' | sed "s/Apache 2 Test Page/$HOSTNAME Test Page/g"
foo avinash-Lenovo-IdeaPad-Z500 Test Page bar
Run Code Online (Sandbox Code Playgroud)