본문 바로가기
TechNical/Unix

unix 쉘 문자를 숫자로 연산시 주의 점

by 강멍멍이 2020. 2. 11.
반응형

쉘 스크립트에서 연산을 하는데 특이한 걸 발견했다.

let var=0011*1;echo $var

의도는 문자형식으로 된걸 앞에 0때고 숫자처럼 변경하려고 하는건데 의도치 않게 엄한 값이 나오게 된다.

위의 쉘 실행 결과는 9가 나온다.
이유는 모르겠다만 유닉스가 8진수로 인식을 하고 연산을 해서 8+1 해서 9가 되어 버린다.

그러면 앞에 0을 어떻게 땔 것인가?
복잡한 방법도 있겠지만 심플하게는 10진수라고 명시를 해 주면 된다.

let var=10#0011*1;echo $var

원하는 10진수 숫자값을 얻을 수 있을 것이다.

반응형

댓글