Sed 无法将结果存储到变量中

Sed 无法将结果存储到变量中

我尝试输入该命令的结果值:

sed "s/\$ip/${ip}/g" xdebug.conf

从该文件提供xdebug.conf

zend_extension = xdebug.so
xdebug.remote_enable = 1
xdebug.remote_host = $ip
xdebug.remote_port = 9091
xdebug.max_nesting_level = 1000
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_autostart=true
xdebug.remote_log=xdebug.log

放入名为 的变量中$conmfiguration

为了实现这一目标,我尝试:

ip="125.12.22.1"
$configuration=$(sed "s/\$ip/${ip}/g" xdebug.conf)

但我得到以下奇怪的结果:

=zend_extension: 未找到命令

你知道为什么会这样吗?

答案1

这里,

$configuration=$(sed "s/\$ip/${ip}/g" xdebug.conf)

两者$configuration$(sed ...)得到扩展。如果变量为空,则得到

=zend_extension = xdebug.so ...

第一个单词被视为命令,其余单词作为其参数。 shell 尝试查找=zend_extension,失败并抱怨。

$从作业的左侧删除,然后作业就可以工作了。这输出foo bar

var=$(echo foo bar)
echo $var

相关内容