ヒアドキュメントのように文字列を扱う仕組み。
通常の文字列として評価された後(変数展開された後)、指定したコマンドの標準入力へ渡される。
コンパクトにした json 文字列が欲しいときは jq
を組み合わせて使う。
$ jq -c -r <<< '{ "EbsOptimized": true, "EbsBlockDeviceConfigs": { "VolumeSpecification": { "VolumeType": "io", "SizeInGB": 20, "Iops": 100 }, "VolumesPerInstance": 1 } }' {"EbsOptimized":true,"EbsBlockDeviceConfigs":{"VolumeSpecification":{"VolumeType":"io","SizeInGB":20,"Iops":100},"VolumesPerInstance":1}}
別のコマンドの引数の1つとして使いたいときは、たぶん外側をシングルクォートで囲むといい。
echo --json-option \'"$(jq -c -r <<< '{ "EbsOptimized": true, "EbsBlockDeviceConfigs": { "VolumeSpecification": { "VolumeType": "io", "SizeInGB": 20, "Iops": 100 }, "VolumesPerInstance": 1 } }')"\' --json-option '{"EbsOptimized":true,"EbsBlockDeviceConfigs":{"VolumeSpecification":{"VolumeType":"io","SizeInGB":20,"Iops":100},"VolumesPerInstance":1}}'