一重引用符内に挿入

一重引用符内に挿入

私は以下を持っています:

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

この印刷

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

これは私が望むものではありません。ここに文字列をどのように挿入しますか?

ベストアンサー1

一重引用符には挿入できません。

文字列を二重引用符で囲んでから、リテラル二重引用符をエスケープできます。

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

あるいは、一重引用符を保持して、何もエスケープする必要がないようにすることもできます。ただし、変数の前に一重引用符を付け、変数に二重引用符を使用し、文字列の最後の部分に一重引用符を使用します。

TEXT_JSON='{"person" : "Jim","comment" : "'"$COMMENT"'"}'

おすすめ記事