Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung der Shell-Rechenoperationen unter Linux

Detaillierte Erläuterung der Shell-Rechenoperationen unter Linux

小云云
小云云Original
2018-03-20 13:51:492493Durchsuche

Dieser Artikel teilt Ihnen hauptsächlich die detaillierte Erklärung der Shell-Rechenoperationen in Linux mit. Er fasst die vier Methoden der arithmetischen Operationen in der Bash-Shell zusammen.

1. Verwenden Sie expr externes Programm

Addition r=`expr 4 + 5`
echo $r

Achtung! Zwischen '4' '+' '5' müssen Leerzeichen stehen

r=`expr 4 * 5` # Fehler
Multiplikation r =`expr 4 * 5`

2. Verwenden Sie $(( ))

r=$(( 4 + 5 ))
echo $r

3. Verwenden Sie $[ ]

r=$ [ 4 + 5 ]
echo $r

Multiplikation
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

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

Finden Sie den Rest
r=$[ 100 % 43 ]
echo $r

Multiplizieren Sie es hoch (z. B. 2 hoch in die dritte Potenz)
r =$(( 2 ** 3 ))
r=$[ 2 ** 3 ]
echo $r
Hinweis: expr hat keine Potenzierung

4. Verwenden Sie den let-Befehl

Addition:
n=10
let n=n+1
echo $n #n =11

Multiplikation:
lass m=n*10
echo $m

Division:
lass r=m/10
echo $r

Finden Sie den Rest:
let r=m%7
echo $r


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

Obwohl die Bash-Shell über vier arithmetische Operationsmethoden verfügt, sind nicht alle plattformübergreifend. Es wird empfohlen, expr zu verwenden.
Darüber hinaus gibt es in Skripten häufig die Operation add 1. Die folgenden vier Methoden stehen zur Verfügung:
m=$[ m + 1]
m=`expr $m + 1`
m=$(($m + 1))
sei 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数据库的方法实例

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Shell-Rechenoperationen unter Linux. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn