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