Home > Article > Backend Development > Detailed explanation of shell arithmetic operations in Linux
This article mainly shares with you the detailed explanation of Shell arithmetic operations in Linux. Summarizes the four methods of arithmetic operations in Bash shell. I hope it can help everyone.
1. Use expr external program
Add r=`expr 4 + 5`
echo $r
Attention! '4' '+' '5' There must be spaces between the three
r=`expr 4 * 5` # ErrorMultiplication r =`expr 4 \* 5`
2. Use $(( ))
r=$( (4 + 5))echo $r
3. Use $[ ]##r= $[ 4 + 5 ]
echo $r
Multiplication
r=$(( 4 * 5 ))
r=$ [ 4 * 5 ]
echo $r
Division
r=$(( 40 / 5 ))
r=$[ 40 / 5 ]
echo $r
Subtraction
r=$(( 40 - 5 ))
r=$[ 40 - 5 ]
echo $r
Find the remainder
echo $r
Multiple to the power (such as 2 to the 3rd power)
r=$[ 2 ** 3 ]
echo $r
Note: expr is not raised to a power
4. Use the let command Addition:
n=10let n=n+1
echo $n #n= 11
Multiplication:
echo $m
Division:
echo $r
Find the remainder:
echo $r
let r=m**2
echo $r
Although the Bash shell has four arithmetic operation methods, not all of them are cross-platform. It is recommended to use expr.
add 1 operation
in scripts. The following four methods are available: m=$[ m + 1]m=`expr $m + 1`
m=$(($m + 1))
let 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 'BEGIN {min=999999999} {if($2<min) min=$2 fi};END {print min}'
awk 浮点运算:
运算表达式: awk 'BEGIN{printf "%.6f\n", ( 10 / 3)}'
运算结果: 3.333333
PS:shell的内部算术运算符无法处理浮点数,所以当需要处理浮点数是,要用到外部工具(如awk)
相关推荐:
The above is the detailed content of Detailed explanation of shell arithmetic operations in Linux. For more information, please follow other related articles on the PHP Chinese website!