Bash의 숫자 변수

Bash 스크립팅 입문

Alex Scriven

Data Scientist

다른 언어에서의 숫자

숫자는 R, Python 같은 대부분의 REPL(콘솔)과 달리 셸에 기본 내장되어 있지 않습니다.

Python 또는 R에서는 다음이 가능합니다:

>>> 1 + 4
5

원하는 결과를 바로 반환합니다!

Bash 스크립팅 입문

셸에서의 숫자

 

숫자는 기본적으로 지원되지 않습니다:

(터미널에서)

1 + 4
bash: 1: command not found
Bash 스크립팅 입문

expr 소개

 

exprcat, grep처럼 유용한 유틸리티 프로그램입니다.

이제 (터미널에서) 동작합니다:

expr 1 + 4
5

좋습니다!

Bash 스크립팅 입문

expr의 한계

expr는 소수를 기본적으로 처리하지 못합니다:

(터미널에서)

expr 1 + 2.5
expr: not a decimal number: '2.5'

걱정하지 마십시오! (해결책이 있습니다)

Bash 스크립팅 입문

bc 소개

bc(basic calculator)는 유용한 커맨드라인 프로그램입니다.

터미널에서 실행하여 계산할 수 있습니다:

셸에서 BC 프로그램 사용

Bash 스크립팅 입문

bc에 숫자 전달하기

 

파이프로 bc를 계산기 열지 않고도 사용할 수 있습니다:

echo "5 + 7.5" | bc
12.5
Bash 스크립팅 입문

bc의 scale 인자

bc에는 소수 자릿수를 정하는 scale 인자가 있습니다.

echo "10 / 3" | bc
3
echo "scale=3; 10 / 3" | bc

터미널에서 '줄'을 구분하기 위해 ;를 사용합니다.

3.333
Bash 스크립팅 입문

Bash 스크립트의 숫자

문자열 변수처럼 숫자 변수도 할당할 수 있습니다:

dog_name='Roger'
dog_age=6

echo "My dog's name is $dog_name and he is $dog_age years old"

dog_age="6"도 동작하지만 문자열이 됩니다! 주의하십시오.

My dog's name is Roger and he is 6 years old
Bash 스크립팅 입문

이중 괄호 표기법

숫자 변수용 단일 대괄호 표기 변형입니다:

expr 5 + 7
echo $((5 + 7))
12
12

이 방법은 bc가 아닌 expr을 사용합니다(소수 불가). 주의하십시오.

Bash 스크립팅 입문

셸 안의 셸 다시 보기

이전 레슨에서 셸을 호출했던 방법을 기억하십니까?

숫자 변수에 매우 유용합니다:

model1=87.65
model2=89.20

echo "The total score is $(echo "$model1 + $model2" | bc)"
echo "The average score is $(echo "($model1 + $model2) / 2" | bc)"
The total score is 176.85
The average score is 88
Bash 스크립팅 입문

Ayo berlatih!

Bash 스크립팅 입문

Preparing Video For Download...