Interpolar entre aspas simples

0

Eu tenho o seguinte:

COMMENT="A random comment"  
TEXT_JSON='{"person" : "Jim","comment" : "$COMMENT"}'    
echo "$TEXT_JSON" | jq .  

Isto imprime

{  
  "person": "Jim",  
  "comment": "$COMMENT"  
} 

que não é o que eu quero. Como posso interpolar a string aqui?

    
por Jim 05.06.2018 / 13:16

1 resposta

2

Você não pode interpolar entre aspas simples.

Você pode colocar a string entre aspas duplas e, em seguida, sair das aspas duplas literais:

COMMENT="A random comment"
TEXT_JSON="{\"person\" : \"Jim\",\"comment\" : \"$COMMENT\"}"
echo $TEXT_JSON | jq .
{  
  "person": "Jim",  
  "comment": "A random comment"  
} 

Ou, alternativamente, você pode manter as aspas simples para não ter que escapar de nada, mas finalizar as aspas simples antes da variável, então use aspas duplas para a variável, depois aspas simples para a última parte da string:

TEXT_JSON='{"person" : "Jim","comment" : "'"$COMMENT"'"}'
    
por 05.06.2018 / 13:52