6. 쉘 프로그래밍에서 산술 연산 표현하기

안녕하세요. 언제나 휴일, 언휴예요.

이번에는 쉘 프로그래밍에서 연산을 표현하는 방법을 알아보아요.

쉘에서 산술 연산을 표현할 때 let 표현을 사용할 수 있습니다. 다음은 변수 a와 b에 값을 입력받고 let c=a+b 표현으로 더하기 연산을 수행한 후에 변수 c의 값을 출력하는 예제입니다.

[그림 1] let 표현으로 연산을 사용하는 화면
[그림 1] let 표현으로 연산을 사용하는 화면

 산술 연산에 사용하는 기호는 +(더하기), -(빼기), *(곱하기), /(나누기), %(나머지)입니다. let과 함께 산술 연산을 표현할 수 있어요. 그리고 $((산술 연산 표현)) 형태로 표현할 수도 있어요. 만약 산술 연산 결과 값을 바로 출력하길 원한다면 expr 산술 연산 표현 (단, 변수명 앞에 $를 붙이고 곱하기는 \*를 사용)형태로 나타낼 수 있어요.

let 변수 = 산술 연산 표현  예) let c = a + b

$((산술 연산 표현)) 예) c = $((a+b))

expr 산술 연산 표현 예) expr $a + $b

다음은 let을 사용하여 산술 연산을 표현한 예제입니다.

#arithop_sh
#쉘 프로그래밍 실습
#산술 연산
#작성자 : eh. jang

echo num1:
read num1
echo num2:
read num2

let re=num1+num2 #Add
echo “add:=$re”
let re=num1-num2 #Sub
echo “sub:=$re”
let re=num1*num2 #Mul
echo “mul:=$re”
let re=num1/num2 #Div
echo “div:=$re”
let re=num1%num2 #Mod
echo “mod:=$re”
[그림 2] 산술 연산
[그림 2] 산술 연산

다음은 $((산술 연산 표현)) 형태를 사용한 예제입니다.

#arithop2_sh
#쉘 프로그래밍 실습
#산술 연산
#작성자 : eh. jang
echo num1:
read num1
echo num2:
read num2

echo “add:=$((num1+num2))
echo “sub:=$((num1-num2))
echo “mul:=$((num1*num2))
echo “div:=$((num1/num2))
echo “mod:=$((num1%num2))
[그림 3] 산술 연산2
[그림 3] 산술 연산2

 다음은 expr을 이용하여 산술 연산 결과를 바로 출력한 예제입니다. expr을 사용할 때 피연산자와 연산자 사이에 공백이 필요합니다.

#arithop3_sh
#쉘 프로그래밍 실습
#산술 연산
#작성자 : eh. jang
echo num1:
read num1
echo num2:
read num2

expr $num1 + $num2
expr $num1 - $num2
expr $num1 \* $num2 #\*
expr $num1 / $num2
expr $num1 % $num2
[그림 4] 산술 연산3
[그림 4] 산술 연산3

 expr 연산 결과를 다른 변수에 대입하는 등의 작업을 하길 원하면 expr 문을 역 따옴표(` : ~와 같이 있는 키)로 감싸주세요.

#arithop4_sh
#쉘 프로그래밍 실습
#산술 연산
#작성자 : eh. jang
echo num1:
read num1
echo num2:
read num2

echo $num1 + $num2 = `expr $num1+$num2`
echo $num1 - $num2 = `expr $num1-$num2`
echo $num1 \* $num2 = `expr $num1\*$num2` #\*
echo $num1 / $num2 = `expr $num1/$num2`
echo $num1 % $num2 = `expr $num1%$num2`
[그림 5] 산술 연산4
[그림 5] 산술 연산4