$ 1 no corpo json curl agora trabalhando

0

Eu tenho um script como este:

#!/bin/bash
curl --request POST --url http:/myUrl.com/etc --header 'content-type: application/json' --data '{"myId": $1, "services": {"ENABLE_THE_SERVICE": "1"}}';

Então, quando eu tento executar: ./myScript.sh 77777 há um erro como:

{"code":"BAD_REQUEST","message":"[line: 1, column: 17] Unexpected character ('$' (code 36)): expected a valid value (number, String, array, object, 'true', 'false' or 'null')\n at [Source: org.jboss.resteasy.core.interception.MessageBodyReaderContextImpl$InputStreamWrapper@45771071; line: 1, column: 17]"}

Você sabe como fazer isso funcionar? obrigado ..

    
por saferJo 17.11.2017 / 09:59

1 resposta

0

Não especifique a sequência que contém o $1 , que impedirá a expansão do shell.

Em vez disso:

curl --request POST \
    --url http:/myUrl.com/etc \
    --header 'content-type: application/json' \
    --data '{"myId": '"$1"', "services": {"ENABLE_THE_SERVICE": "1"}}';

Isso encerra a primeira parte da string data pouco antes do $1 , depois aspas duplas do próprio $1 'e concatena isso com uma nova sequência de aspas simples com o restante do conteúdo de dados.

    
por 17.11.2017 / 10:05

Tags