bashでパラメータ展開の文字列をシングルクォートとダブルクォートで二重に囲った時の動作

試した環境

本題

bashにおいてパラメータ展開の文字列$HOGEをシングルクォートで囲った場合はパラメータは展開されません。 ダブルクォートで囲った場合はパラメータが展開されます。

$ WIDTH=1920
$ HEIGHT=1920
$ echo $WIDTH
1920
$ echo '$WIDTH'
$WIDTH
$ echo "$WIDTH"
1920

ただし、シングルクォートで囲ってそれをさらにダブルクォートで囲った場合は、パラメータが展開されます。

$ echo "size='$WIDTH $HEIGHT'"
size='1920 1080'

逆にダブルクォートで囲ってそれをさらにシングルクォートで囲った場合は、パラメータが展開されません。

$ echo 'size="$WIDTH $HEIGHT"'
size="$WIDTH $HEIGHT"

おまけとして、三重に囲おうとした場合は、パラメータ文字列の部分が結果的にクォート(ダブルクォート)で囲われていないことになるので、パラメータが展開されます。

$ echo 'parameter "--size='$WIDTH $HEIGHT'"'
parameter "--size=1920 1080"

$ echo "parameter '--size="$WIDTH $HEIGHT"'"
parameter '--size=1920 1080'