case $value in
*-*=*-*)
esac

こんなふうに、*が複数ある場合の動きとかちゃんと仕様化されてるの
どのシェルでも同じように動く?