Aqui,
$configuration=$(sed "s/\$ip/${ip}/g" xdebug.conf)
$configuration
e $(sed ...)
são expandidos. Se a variável estiver vazia, você obtém
=zend_extension = xdebug.so ...
A primeira palavra é tomada como um comando e o restante como argumentos para ela. O shell tenta encontrar =zend_extension
, falha e reclama.
Remova o $
do lado esquerdo da tarefa e a atribuição funciona. Isso gera foo bar
:
var=$(echo foo bar)
echo $var