반응형
쉘 스크립트에서 연산을 하는데 특이한 걸 발견했다.
let var=0011*1;echo $var
의도는 문자형식으로 된걸 앞에 0때고 숫자처럼 변경하려고 하는건데 의도치 않게 엄한 값이 나오게 된다.
위의 쉘 실행 결과는 9가 나온다.
이유는 모르겠다만 유닉스가 8진수로 인식을 하고 연산을 해서 8+1 해서 9가 되어 버린다.
그러면 앞에 0을 어떻게 땔 것인가?
복잡한 방법도 있겠지만 심플하게는 10진수라고 명시를 해 주면 된다.
let var=10#0011*1;echo $var
원하는 10진수 숫자값을 얻을 수 있을 것이다.
반응형
댓글