Quoting

在單引號內插值

  • July 11, 2021

我有以下內容:

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

這列印

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

這不是我想要的。如何在此處插入字元串?

您不能在單引號內插入。

您可以將字元串放在雙引號中,然後轉義文字雙引號:

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"'"}'

引用自:https://unix.stackexchange.com/questions/447963