これが文字列比較であることはわかりますが、「abc」と「123」がどのように互いに比較されるかはわかりません。よろしくお願いします!
答え1
これは、内部的に[[…]]
<および>演算子が文字列比較を実行するためです。
文字列比較を実行すると、順序は(デフォルトでは)アルファベットで指定されます。ここで、aはbより速く(小さく)、cより小さいですa < b < c
。
数字は通常文字より小さい。1 < 2 < a
したがって、a
a1
abc
以降のソートは次よりも大きくなります123
。
$ [[ abc > 123 ]] && echo yes
yes
またはあなたが言ったように:
$ x=abc y=123
$ [[ $x > $y ]] && echo yes
yes