揮発性のメモ2

http://d.hatena.ne.jp/iww/

bashで文字列の辞書比較をするときには、演算子を""で囲う

$ [ "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

[[は組込みコマンドなので 演算子を "" で囲うよりは [[ を使った方がよい気がする。