用变量替换文本

Vin*_*nce 26 linux variables bash sed

我怎样才能做到这一点?

sed -i 's/wiki_host/$host_name/g' /root/bin/sync
Run Code Online (Sandbox Code Playgroud)

它将取代wiki_host文本$host_name.但我想用变量的内容替换它..

我试过了

sed -i 's/wiki_host/${host_name}/g' /root/bin/sync
Run Code Online (Sandbox Code Playgroud)

它也不起作用.

And*_*ter 53

你需要使用双引号:

$ sed -i "s/wiki_host/${host_name}/g" /root/bin/sync
Run Code Online (Sandbox Code Playgroud)

单引号可以防止shell变量被其内容替换.

  • 一个重要的警告是sed分隔符(在本例中为`/`)不能成为`$ {host_name}`的一部分,否则会出错。 (2认同)