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!