NetBSDのshのヒアドキュメント内変数展開

バグなのか,仕様の取り違えなのか。 ようは,ダブルクォート相当のヒアドキュメント内で変数展開したときの \" の取り扱いがNetBSDだけ違う。

NetBSD以外のsh(bashも)

var=1
cat<<EOF
${var:+Hello, "World"}
EOF
Hello, World

cat<<EOF
${var:+Hello, \"World\"}
EOF
Hello, \"World\"

おお,ダブルクォートを入れたいときはどうすればいいのだ。

NetBSDのsh

var=1
cat<<EOF
${var:+Hello, "World"}
EOF
Hello, World

cat<<EOF
${var:+Hello, \"World\"}
EOF
Hello, "World"

ダブルクォートを入れられる。がしかし,互換性がないからこれは使えない。 一度別の変数に入れて ${var:+$othervar} ってするしかないか。