반응형

     정보

    • 업무명     : 쉘 스크립트에서 수치 계산 소개

    • 작성자     : 박진만

    • 작성일     : 2020-03-11

    • 설   명      :

    • 수정이력 :

     

     내용

    [특징]

    • 쉘 스크립트 (bash)에서 사용하는 수치 계산 소개

     

    [활용 자료]

    • 없음

     

    [자료 처리 방안 및 활용 분석 기법]

    • 없음

     

    [사용법]

    • 작업 환경 구축

    • 소스 코드 작성 및 실행

    • 실행 결과 확인

     

    [사용 OS]

    • Linux (CentOS v7.0)

    • VMware Workstation Pro v15.5

     

    [사용 언어]

    • Shell Script (Bash)

     

     소스 코드

    쉘 스크립트에서의 할당과 연산은 기본적으로 문자열 처리이다.

    그러나 쉘 스크립트에서 수학 연산을 수행하는 몇 가지 특수한 방법이 있다. 

     

    [나쁜 예시]

      • 경우 1, 2의 경우 변수 설정 시 문자열로 인식
      • 실행 결과 1+1로 문자열로 출력

    # case 1
    var=1+1
    
    # case 2
    var=1
    var=$var+1
    
    echo $var
    •  

     

    [좋은 예시]

    • let 사용

      • 실행 결과 2로 올바르게 출력

      • 해당 기능에 대한 자세한 정보는 다음과 같습니다.

        • 지수 연산은 "**"를 사용함. 

        • 매개 변수는 표현식에서 직접 액세스하므로 $를 추가 할 필요가 없다. 

        • 일반적으로 산술 표현식에는 큰 따옴표가 없어도됩니다. 다만 표현식에 bash에 키워드가 있는 경우 e를 추가해야 한다. 

        • let 이후의 표현식은 정수 연산만 수행 할 수 있음.

    var=1
    
    let "var+=1"
    
    echo $var

     

     

    • (())의 사용

      • 실행 결과 2로 올바르게 출력

      • (())는 let 과 용도가 같다.

    var=1
    ((var+=1))
    echo $var

     

     

    • $[] 의 사용

      • 실행 결과 2로 올바르게 출력

      • 해당 기능에 대한 세부 정보는 다음과 같다.

        • $[]는 결과를 계산하기 위해 수학 연산으로 대괄호 안의 표현식을 사용하여 출력한다.

        • $[]의 변수에 접근하기 전에 $를 추가해야 한다.

        • $[]는 let과 같은 연산자를 지원하기 때문에 정수 연산만 지원한다.

    var=1
    var=$[$var+1]
    echo $var

     

     

    • expr 사용

      • 실행 결과 2로 올바르게 출력

      • 해당 기능에 대한 세부 정보는 다음과 같다.

        • expr 이후의 표현식은 공백으로 분리해야 한다.

        • expr이 지원하는 연산자는 다음과 같다. |, &, <, <=, = ,! =,> =,>, +,-, *, /, %

        • \로 이스케이프해야하는 expr이 지원하는 연산자는 다음과 같다. |, &, <, <=,> =,>, *

        • expr은 정수 연산만 지원한다.

    var=1
    var=`expr $var + 1`
    echo $var

     

     

    • bc 사용

      • bc는 리눅스에서 정수형 부동 소수점 계산을 지원하는 간단한 계산기이다.

      • 정수형 계산

        • 실행 결과 2로 올바르게 출력 

        • 해당 기능에 대한 세부 정보는 다음과 같다.

          • bc는 리눅스에서 부동 소수점 숫자 계산을 지원하는 간단한 계산기이다.

          • 명령 줄에 bc를 입력하여 계산기 프로그램을 시작할 수 있다.

          • 프로그램에서 부동 소수점 숫자 계산을 직접 수행하려면 간단한 파이프 라인을 사용하여 문제를 해결할 수 있다.

      • 부동 소수점 계산

        • 실행 결과 9.42라는 두 자릿수 소수의 결과가 출력되었다.

        • 해당 기능에 대한 세부 정보는 다음과 같다.

          • bc는 비트 연산자를 제외한 모든 연산자를 지원한다.

          • bc에서 스케일을 사용하여 정확도를 설정할 수 있다.

    •  
    # case 1
    var=1
    var=`echo "$var+1"|bc`
    
    echo $var
    
    # case 2
    var=3.14
    var=`echo "scale=2;$var*3"|bc`
    echo $var

     

     

     참고 문헌

    [논문]

    • 없음

    [보고서]

    • 없음

    [URL]

    • 없음

     

     문의사항

    [기상학/프로그래밍 언어]

    • sangho.lee.1990@gmail.com

    [해양학/천문학/빅데이터]

    • saimang0804@gmail.com

     

     

     

     

     

     

     

    본 블로그는 파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음
    반응형
    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기