Heim > Artikel > Backend-Entwicklung > Detaillierte Erläuterung der Shell-Rechenoperationen unter Linux
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 '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)
相关推荐:
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!