我尝试输入该命令的结果值:
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