Maison > Article > développement back-end > Explication détaillée des opérations arithmétiques du shell sous Linux
Cet article partage principalement avec vous l'explication détaillée des opérations arithmétiques du shell sous Linux Il résume les quatre méthodes d'opérations arithmétiques dans le shell Bash.
1. Utiliser le programme externe expr
Ajout r=`expr 4 + 5`
echo $r
Remarque ! '4' '+' '5' Il doit y avoir un espace entre ces trois
r=`expr 4 * 5` # Erreur
Multiplication r =`expr 4 * 5`
2. Utilisez $(( ))
r=$(( 4 + 5 ))
echo $r
3. Utilisez $[ ]
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
Soustraction
r=`expr 40 - 5`
r=$(( 40 - 5 ))
r=$[ 40 - 5 ]
echo $r
Trouver le reste
r=$[ 100 % 43 ]
echo $r
Multiple à la puissance (comme 2 élevé à la puissance troisième )
r =$(( 2 ** 3 ))
r=$[ 2 ** 3 ]
echo $r
Remarque : expr n'a pas d'exponentiation
4. Utilisez la commande let
Ajout :
n=10
let n=n+1
echo $ n #n=11
Multiplication :
soit m=n*10
echo $m
Division :
soit r=m/10
echo $ r
Trouver le reste :
let r=m%7
echo $r
Puissance :
let r=m**2
echo $r
Bien que le shell Bash dispose de quatre méthodes d'opérations arithmétiques, elles ne sont pas toutes multiplateformes. Il est recommandé d'utiliser expr.
De plus, nous avons souvent l'opération ajouter 1 dans les scripts. Les quatre méthodes suivantes sont disponibles :
m=$[ m + 1]
m=`expr $m +. 1`
m=$(($m + 1))
soit 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)
相关推荐:
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!