이것이 문자열 비교라는 것은 알지만 "abc"와 "123"이 어떻게 서로 비교되는지 이해하지 못합니다. 미리 감사드립니다!
답변1
이는 내부적으로 [[…]]
< 및 > 연산자가 문자열 비교를 수행하기 때문입니다.
문자열 비교를 수행할 때 순서는 (기본적으로) 알파벳으로 지정됩니다. 여기서 a는 b보다 빠르며(작고) c보다 작습니다 a < b < c
.
숫자는 일반적으로 문자보다 작습니다.1 < 2 < a
따라서 a
a 1
abc
이후의 정렬은 다음보다 큽니다 123
.
$ [[ abc > 123 ]] && echo yes
yes
또는 당신이 말했듯이 :
$ x=abc y=123
$ [[ $x > $y ]] && echo yes
yes