Explication détaillée des opérations arithmétiques du shell sous Linux

小云云
Libérer: 2023-03-21 19:06:01
original
2501 Les gens l'ont consulté

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
Copier après la connexion


2. 特定列求和

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


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;
Copier après la connexion

awk 浮点运算:

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

运算结果: 3.333333

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

相关推荐:

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

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal