バグなのか,仕様の取り違えなのか。
ようは,ダブルクォート相当のヒアドキュメント内で変数展開したときの
\"
の取り扱いが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}
ってするしかないか。