bash:在字符串中启动命令。 - 使用sed

时间:2017-11-22 18:11:07

标签: linux bash sed

我的sed输入如下:

sed 's/ListenAddress=.*/ListenAddress= $hostname/' nodemanager.properties

我正在尝试针对Linux服务器运行此操作并将ListenAddress={current_value}替换为ListenAddress={hostname_of_server}

我需要知道如何运行hostname命令并将该输出反映在ListenAddress=

的末尾

由于

1 个答案:

答案 0 :(得分:0)

如果您希望bash变量反映在sed脚本内,请使用双引号。这对于命令替换也是有效的。所以你应该这样做

sed "s/ListenAddress=.*/ListenAddress= $(hostname)/" nodemanager.properties

由于发生了可变扩展,因此您需要注意$显示为sed属性的某些情况。例如,如果您仅将上述命令应用于文件的最后一行,则执行

sed "\$s/ListenAddress=.*/ListenAddress= $(hostname)/" nodemanager.properties

请注意$命令转义之前的s,这意味着它是提供给脚本的文字$