bash のヒアストリング

www.tldp.org

ヒアドキュメントのように文字列を扱う仕組み。

通常の文字列として評価された後(変数展開された後)、指定したコマンドの標準入力へ渡される。

コンパクトにした 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}}'