JSONテキストを変数にする

bashスクリプトを書いていて、変数にJSONテキストを入れたい。

サンプル
シングルクォートで括って、、

#!/bin/bash

name="orange"
msg='{
       "count": 12,
       "item" : "'$name'"
}'

echo $msg

JSONの中で変数をセットするのが良い書き方に思えない。
echo の結果はこうなる

{ "count": 12, "name" : "orange" }

cat コマンドを使って結果入力にする。
<< で最終文字までを指定する方法
よく、EOF とか書いたりするが、今回は、"!" 文字で。

#!/bin/bash

name="orange"
msg=`cat <<!
{
   "count": 12,
   "name" : "$name"
}
!`

echo $msg
{ "count": 12, "name" : "orange" }