シェルで jq コマンドで変数を渡す際、jq コマンドで シングルクォート が使われているために期待通り変数を渡すことができない。
今回は jq コマンドのシングルクォート内に変数を渡す方法を紹介。
jq --arg image_tag $IMAGE_TAG
image_tag、$IMAGE_TAG は適宜変更。
最初の image_tag は jq 内で使うことができる変数名。
後ろの $IMAGE_TAG はシェル内で定義されている変数名。
この --arg
オプションが、シェルの変数と jq の変数をうまく橋渡ししてくれる。
IMAGE_TAG='abcdeeeeeeeeeee'
DGST=`aws ecr list-images --repository-name ecr-repository | jq --arg image_tag $IMAGE_TAG -r '.imageIds[] | select(.imageTag == $image_tag) | .imageDigest'`
echo $DGST