>  기사  >  백엔드 개발  >  Linux의 쉘 산술 연산에 대한 자세한 설명

Linux의 쉘 산술 연산에 대한 자세한 설명

小云云
小云云원래의
2018-03-20 13:51:492493검색

이 글은 주로 Linux에서의 쉘 산술 연산에 대한 자세한 설명을 공유합니다. Bash 쉘의 산술 연산의 네 가지 방법이 모두에게 도움이 되기를 바랍니다.

1. expr 외부 프로그램 사용

추가 r=`expr 4 + 5`
echo $r

주의! '4' '+' '5'

r=`expr 4 * 5` # 오류
곱셈 r=`expr 4 * 5`

2. $(( ))

r=$(( 4 + 5 ) )
을 사용하세요. echo $r

3. $[ ]

r=$[ 4 + 5 ]
echo $r

Multiplication
r=`expr 4 * 5`
r=$( ( 4 * 5 ))
r=$[ 4 * 5 ]
echo $r

division
r=`expr 40 / 5`
r=$(( 40 / 5 ))
r=$[ 40 / 5 ]
echo $r

뺄셈
r=`expr 40 - 5`
r=$(( 40 - 5 ))
r=$[ 40 - 5 ]
echo $r

나머지 구하기
r=$[ 100 % 43 ]
echo $r

Powered(예: 2의 3승)
r=$(( 2 ** 3 ))
r=$[ 2 ** 3 ]
echo $r
참고: expr 아니요 곱셈

4. let 명령을 사용하세요

추가:
n=10
let n=n+1
echo $n #n=11

곱하기:
let m=n*10
echo $m

Division:
let r=m/10
echo $r

나머지 찾기:
let r=m%7
echo $r


Power:
let r=m**2
echo $r

Bash 쉘에는 4가지 산술 연산 방법이 있지만 모두 크로스 플랫폼인 것은 아닙니다. expr을 사용하는 것이 좋습니다.
또한 스크립트에서는 종종 add 1 작업을 사용할 수 있습니다.
m=$[ m + 1]
m=`expr $m + 1`
m=$(($m + 1 ))
m=m+1

하자

 

Shell awk 循环求和

1. 简单求和

$ cat test.txt 
11
22
33
44
55
$ awk '{sum += $1};END{print sum}' test.txt  
165


2. 特定列求和

$ cat test.txt 
aa      11
bb      22
cc      33
aa      44
dd      55
$ awk '/aa/ {sum += $2};END {print sum}' test.txt 
55


3. 求和、平均数、最大值、最小值

$ cat test.txt 
aa      11
bb      22
cc      33
aa      44
dd      55
$ cat test.txt | awk '{sum += $2};END {print sum}'
165
$ cat test.txt | awk '{sum += $2};END {print sum/NR}'
33
$ cat test.txt | awk 'BEGIN {max=0} {if($2>max) max=$2 fi};END {print max}'
55
$ cat test.txt | awk &#39;BEGIN {min=999999999} {if($2<min) min=$2 fi};END {print min}&#39;

awk 浮点运算:

运算表达式: awk 'BEGIN{printf "%.6f\n", ( 10 / 3)}'

运算结果: 3.333333

PS:shell的内部算术运算符无法处理浮点数,所以当需要处理浮点数是,要用到外部工具(如awk)

相关推荐:

shell每天自动备份mysql数据库的方法实例

위 내용은 Linux의 쉘 산술 연산에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.