배운것/LINUX
Linux shell - 사칙연산 해보기 $(expr ) , $[] , $(()) 변수 활용
SangPedia
2021. 9. 9. 17:07
사칙연산 해보기
1. $(expr )
expr은 패턴 일치 정규 표현식을 포함하여 정수나 문자열 식을 평가한다.
사용 가능한 연산자는 다음과 같다.
- 정수의 경우: 더하기, 빼기, 곱하기, 나누기, 계수(modulus)
- 문자열의 경우: 정규 표현식 찾기, 문자열 내의 문자들의 집합을 찾기. 일부 버전에서는: 부스트링 찾기, 문자열의 길이
- 둘 중 하나에 대해: 비교 (동등, 동등하지 않음, 보다 작음 등)
- 순수 산술에서 bc를 사용하는 것이 더 편리한 경우도 있다.
이를테면 다음과 같다:echo "3*4+14/2" | bc
#! /bin/bash
# your code goes here
num1=10 num2=5
echo "num1 = $num1"
echo "num2 = $num2"
add=$(expr $num1 + $num2)
echo "add = $add"
echo "sub = $(expr $num1 - expr $num2)"
echo "mul = $(expr $num1 \* expr $num2)"
echo "div = $(expr $num1 / expr $num2)"
echo "modulo = $(expr $num1 % expr $num2)"
➤ sh expr.sh
num1 = 10
num2 = 5
add = 15
sub = 5
mul = 50
div = 2
modulo = 0
2. $(), ${}
$() 이런 식으로 붙이는 경우도 있습니다. 이것은 명령어의 실행 결과를 의미합니다. 즉, $(Command) 쓰면, $(Command)는 명령어 Command의 실행 결과로 대치됩니다.
#! /bin/bash
# your code goes here
num1=20 num2=5
echo
echo "add = $($num1 + $num2)"
echo "sub = $($num1 - $num2)"
echo "mul = $($num1 * $num2)"
echo "div = $($num1 / $num2)"
echo "module = $($num1 % $num2)"
➤ sh no_expr.sh
no_expr.sh: line 6: 20: command not found
add =
no_expr.sh: line 7: 20: command not found
sub =
no_expr.sh: line 8: 20: command not found
mul =
no_expr.sh: line 9: 20: command not found
div =
no_expr.sh: line 10: 20: command not found
module =
#! /bin/bash
# your code goes here
num1=20 num2=5
echo
echo "add = $[$num1 + $num2]"
echo "sub = $[$num1 - $num2]"
echo "mul = $[$num1 * $num2]"
echo "div = $[$num1 / $num2]"
echo "module = $[$num1 % $num2]"
➤ sh no_expr2.sh
add = 25
sub = 15
mul = 100
div = 4
module = 0
4. $(()) 활용
#! /bin/bash
# your code goes here
num1=20 num2=5
echo
echo "add = $(($num1 + $num2))"
echo "sub = $(($num1 - $num2))"
echo "mul = $(($num1 * $num2))"
echo "div = $(($num1 / $num2))"
echo "module = $(($num1 % $num2))"
➤ sh no_expr3.sh
add = 25
sub = 15
mul = 100
div = 4
module = 0
반응형