シェルスクリプトのif文で文字列の辞書順の大小関係を条件判定したかったので調べました
bashなどには[[
]]
コマンドがあるので、簡単に文字列比較ができます(ところで[[
]]
って検索しづらいですね
[
]
(test)コマンドの方でも文字列の大小比較はできますが、以下のように>
や<
をエスケープする必要があります(手元で試したらbashでは動いてzshでは動かなかった)
[ string1 \< string2 ] [ string1 \> string2 ]
[[
]]
を使うと以下のように自然に書くことができます
[[ string1 = string2 ]] [[ string1 == string2 ]] [[ string1 != string2 ]] [[ string1 < string2 ]] [[ string1 > string2 ]]
久しぶりに書くと[
]
の内側や演算子の周りに空白を入れ忘れてエラーになってしまった