bash에서 -eq 와 == 의 차이가 무엇인가요?

글쓴이: 익명 사용자 / 작성시간: 금, 2020/07/17 - 5:42오후
아래와 같은 테스트 코드를 작성했습니다.
4 if [ "1" == 1 ] 5 then 6 echo True 7 else 8 echo False 9 fi 10 11 12 if [ "1" -eq 1 ] 13 then 14 echo True 15 else 16 echo False 17 fi
결과는 모두 True입니다.
여기서 질문,
1) -eq와 == 이 구분되어 존재하는 이유가 무엇인가요? 분명 이유가 있게지요, 어떤 경우 둘의 차이를 확인할 수 있을까요?
2) 문자와 숫자("1"과 1), bash에서 문자1과 숫자1의 구분이 없는 건가요? 아니면 다른 언어 (e예, python 등)과 달리 bash에서는 인용부호가 문자를 지칭하는데 사용되지 않는 건가요?
Forums:
==는 두 문자열이 같은지 비교합니다. -eq는 두
==는 두 문자열이 같은지 비교합니다. -eq는 두 문자열이 "숫자로써" 같은지 비교합니다.
테스트 코드를 살짝 바꿔서 이해시켜드릴 수 있을 것 같은데, 한번 해볼까요?
두 번째 질문에도 답을 드리자면, echo "1"과
두 번째 질문에도 답을 드리자면,
echo "1"
과echo 1
를 비교해보세요.결국 bash에서 다루는 건 기본적으로 다 문자열이라고 보시면 됩니다.
그 문자열을 숫자로 해석할 수 있는지, 만약 그렇다면 숫자로 해석하여 사용할 것인지는 상황에 따라 다르고요.
감사합니다. 이해가 됐습니다.
감사합니다.
이해가 됐습니다.
댓글 달기