Usando variável em um comando CURL

2

Estou tentando inserir um documento no meu cloudant como abaixo.

@echo OFF
SPEECH_TEXT="Call me Ishmael. Some years ago-never mind how long precisely-"
curl -X POST -k 'https://<user id>.cloudant.com/testdb' -P 443 -H 'Content-Type:application/json' -d '{"transcript":"'"$SPEECH_TEXT"'"}' | jq-win64.exe

Primeiros erros abaixo:

{
  "error": "bad_request",
  "reason": "invalid UTF-8 JSON"
}

Se eu substituir a variável com texto simples no comando, ela funcionará bem. Qualquer ajuda muito apreciada.

    
por user556526 10.02.2016 / 17:12

1 resposta

1

Eu normalmente uso a rota printf para código limpo:

Exemplo:

[user@localhost ~]$ SPEECH_TEXT="something"
[user@localhost ~]$ body='printf '{"transcript":"%s"}' $SPEECH_TEXT'
[user@localhost ~]$ echo $body
{"transcript":"something"}
[user@localhost ~]$ 

No seu caso:

curl -X POST -k 'https://cloudant.com/testdb' -P 443 -H 'Content-Type:application/json' -d 'printf '{"transcript":"%s"}' $SPEECH_TEXT'
    
por 10.02.2016 / 17:22

Tags