정보
-
업무명 : 쉘 스크립트에서 수치 계산 소개
-
작성자 : 박진만
-
작성일 : 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
본 블로그는 파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음
'프로그래밍 언어 > Shell Script' 카테고리의 다른 글
[Shell Script] 쉘 스크립트 (bash) 개발자가 빠지기 쉬운 함정 (1) (2) | 2020.03.21 |
---|---|
[Shell Script] 쉘 스크립트에서 문자열 길이를 계산하는 4가지 방법 (0) | 2020.03.13 |
[ShellScript] 쉘 스크립트 sed 문자열 치환 시 "echo" 대신 "Here String (<<<)" 사용 방법 (2) | 2020.01.19 |
[Shell Script] 쉘 스크립트 템플릿 파일에서 변수 확장 방법 (0) | 2020.01.19 |
[Shell Script] 쉘 스크립트 기초 (0) | 2019.08.28 |
최근댓글