シェルスクリプト実行時にこんなエラーが。
sh -c "if [ a == b ]; then echo hello ; fi"
sh: 1: [: a: unexpected operator
エラーメッセージを見ると[
が使えないのかな?とかおもったけど違って、
==
が使えないのが原因だった。
変なところでハマった。
sh -c "if [ a != b ]; then echo hello ; fi"
hello
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/test.html
ここに色々書いてあるが、POSIX準拠のShellのtestコマンドの文字列比較オペレーターは ==
ではなく=
でした。
Bash使えば?って話でもあるが。