![x=abc, [[ $x > 123 ]] && echo yes || echo no일 때 yes를 반환하는 방법은 무엇입니까? [복사]](https://linux55.com/image/105218/x%3Dabc%2C%20%5B%5B%20%24x%20%26gt%3B%20123%20%5D%5D%20%26amp%3B%26amp%3B%20echo%20yes%20%7C%7C%20echo%20no%EC%9D%BC%20%EB%95%8C%20yes%EB%A5%BC%20%EB%B0%98%ED%99%98%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
이것이 문자열 비교라는 것은 알지만 "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