Atualizado com comentários e discussões de bate-papo levados em consideração.
O código PHP executa o script de shell como sh ./curl.sh $title
, em que $title
é uma variável do PHP (idealmente, deve-se citar corretamente o $title
data para não confundir o shell). Portanto, o script de shell precisa escolher o título a partir de seus parâmetros de linha de comando, $*
, em vez de usar a variável de shell $title
.
O documento JSON que enviou é simples, o que significa que a expansão da variável $title
não será vista pelo shell.
Você precisa sair temporariamente da única string entre aspas para obter a variável expandida:
-d '{ "template_id": "template...{ "text": "'"$*"'" }...
As aspas duplas externas em "'"$*"'"
pertencem ao documento JSON, o conteúdo entre aspas simples pertence ao shell. As aspas duplas internas citam o valor $*
(no caso de conter padrões de espaço em branco e / ou globalização de nomes de arquivos).
Houve um problema adicional no código PHP, o que significa que a variável $title
do PHP nunca foi configurada corretamente. Quando isso foi corrigido, funcionou como esperado.