MLでシェルの構文まで変わる

かなりショック。AIXにはMLと呼ばれるパッチをある程度まとめたものがある。基本はパッチなのだ、バグ修正のための。なのに、シェルの構文が変わってしまうほどの修正が加えられているんだ。

AAA='hoge'
if [[ ${AAA} == hoge ]]
then
    echo OK
fi

は今まで、

AAA='hoge'
if [[ ${AAA} = hoge ]]
then
    echo OK
fi

でなくてはSyntax errorだったのに。AIX5.2のML03以上から通用するようになってしまっている。お陰で別チームが作ったスクリプトのコードレビュー時に堂々と指摘してしまい、恥をかいてしまったよ。

kshのmanを引いたって[[ expression ]]の構文には載ってないし、卑怯だよ...

どうでも良いけど...

[[ expression ]]

を書いたらキーワードリンクと扱われてしまった。仕方なく数値文字参照を使って[,]と面倒な書き方になってしまった。自動リンクを止める(自動リンク停止記法)を使ってもダメだったし。何とかならんかなぁ...