"Bash 숫자 계산"의 두 판 사이의 차이

(같은 사용자의 중간 판 30개는 보이지 않습니다)
1번째 줄: 1번째 줄:
==개요==
;리눅스 숫자 계산
;리눅스 숫자 계산
;리눅스 숫자 연산
;리눅스 숫자 연산
* bash에서 [[사칙연산]] 모두 가능함
:→ 단, 나누기 소수점 계산은 안됨
:→ 모두 정수형으로 취급됨
* [[리눅스 awk|awk]], [[리눅스 bc|bc]]를 활용하면 소수점 계산도 가능


==덧셈==
==방법 1: bash 변수 처리==
<source lang='bash'>
<source lang='bash'>
x=3
x=3
y=4
y=4
z=$((x + y))
z=$((x+y))
echo $z
echo $z
# 7
# 7
</source>
</source>
<source lang='bash'>
echo $((x-y))
echo $((x*y))
echo $((x/y))
# -1
# 12
# 0
echo $((12/5))
# 2
</source>
==방법 2: let 명령어==
<source lang='bash'>
<source lang='bash'>
x=3
x=3
17번째 줄: 34번째 줄:
# 7
# 7
</source>
</source>
<source lang='bash'>
let z=$x-$y
echo $z
# -1
</source>
<source lang='bash'>
let z=$x*$y
echo $z
# 12
</source>
<source lang='bash'>
let z=$x/$y
echo $z
# 0
</source>
<source lang='bash'>
let z=12/5
echo $z
# 2
</source>
==방법 3: expr 명령어==
* 숫자와 연산자 사이를 띄어써야 함
<source lang='bash'>
x=3
y=4
expr $x + $y
# 7
</source>
<source lang='bash'>
expr $x - $y
expr $x \* $y
expr $x / $y
# -1
# 12
# 0
expr 12 / 5
# 2
</source>
==방법 4: awk 명령어 ★==
{{참고|awk 간단한 계산}}
* 장점1: 리눅스 기본 명령어
* 장점2: 소수점 계산 가능
* 단점: 변수를 직접 쓰지 못하고 파이프로 변수를 전달하는 과정이 필요하다.
<source lang='bash'>
<source lang='bash'>
x=3
x=3
y=4
y=4
z=`expr $x + $y`
echo $x $y | awk '{print $1+$2}'
echo $z
# 7
# 7
echo $x $y | awk '{print $1-$2}'
# -1
echo $x $y | awk '{print $1*$2}'
# 12
echo $x $y | awk '{print $1/$2}'
# 0.75
</source>
</source>
==방법 5: bc 명령어==
* [[리눅스 bc]]가 설치되어 있어야 함
<source lang='bash'>
<source lang='bash'>
x=3
x=3
y=4
y=4
z=`echo "$x + $y" | bc`
echo "$x+$y" | bc
echo $z
# 7
# 7
</source>
<source lang='bash'>
echo "$x-$y" | bc
echo "$x*$y" | bc
echo "$x/$y" | bc
# -1
# 12
# 0
echo "12/5" | bc
# 2
echo "12/5" | bc -l
# 2.40000000000000000000
</source>
</source>


==같이 보기==
==같이 보기==
*[[Bash 소수점 계산]]
*[[리눅스 bc]]
*[[리눅스 bc]]
*[[리눅스 let]]
*[[리눅스 let]]
*[[리눅스 expr]]
*[[리눅스 expr]]
*[[리눅스 awk 간단한 계산]]
*[[연산자 +]]
*[[연산자 +]]
*[[Bash 숫자 비교]]


[[분류: 리눅스]]
[[분류: Bash]]

2019년 12월 12일 (목) 15:41 판

1 개요

리눅스 숫자 계산
리눅스 숫자 연산
→ 단, 나누기 소수점 계산은 안됨
→ 모두 정수형으로 취급됨
  • awk, bc를 활용하면 소수점 계산도 가능

2 방법 1: bash 변수 처리

x=3
y=4
z=$((x+y))
echo $z
# 7
echo $((x-y))
echo $((x*y))
echo $((x/y))
# -1
# 12
# 0
echo $((12/5))
# 2

3 방법 2: let 명령어

x=3
y=4
let z=$x+$y
echo $z
# 7
let z=$x-$y
echo $z
# -1
let z=$x*$y
echo $z
# 12
let z=$x/$y
echo $z
# 0
let z=12/5
echo $z
# 2

4 방법 3: expr 명령어

  • 숫자와 연산자 사이를 띄어써야 함
x=3
y=4
expr $x + $y
# 7
expr $x - $y
expr $x \* $y
expr $x / $y
# -1
# 12
# 0
expr 12 / 5
# 2

5 방법 4: awk 명령어 ★

  • 장점1: 리눅스 기본 명령어
  • 장점2: 소수점 계산 가능
  • 단점: 변수를 직접 쓰지 못하고 파이프로 변수를 전달하는 과정이 필요하다.
x=3
y=4
echo $x $y | awk '{print $1+$2}'
# 7
echo $x $y | awk '{print $1-$2}'
# -1
echo $x $y | awk '{print $1*$2}'
# 12
echo $x $y | awk '{print $1/$2}'
# 0.75

6 방법 5: bc 명령어

x=3
y=4
echo "$x+$y" | bc
# 7
echo "$x-$y" | bc
echo "$x*$y" | bc
echo "$x/$y" | bc
# -1
# 12
# 0
echo "12/5" | bc
# 2
echo "12/5" | bc -l
# 2.40000000000000000000

7 같이 보기

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}