$ [ "A" < "B" ] && echo OK -bash: B: そのようなファイルやディレクトリはありません $ if [ "A" < "B" ]; then echo OK; fi -bash: B: そのようなファイルやディレクトリはありません
[ はコマンドなので、大なり > や小なり < をリダイレクトかなんかと誤解しておかしなことし始める
思ったとおり動作させさいときは、演算子を "" で囲うか [[ のほうを使う。
$ [ "A" "<" "B" ] && echo OK OK $ [[ "A" < "B" ]] && echo OK OK
[[は組込みコマンドなので 演算子を "" で囲うよりは [[ を使った方がよい気がする。