이 글은 주로 Linux에서의 쉘 산술 연산에 대한 자세한 설명을 공유합니다. Bash 쉘의 산술 연산의 네 가지 방법이 모두에게 도움이 되기를 바랍니다.
1. expr 외부 프로그램 사용
추가 r=`expr 4 + 5`
echo $r
주의! '4' '+' '5'
r=`expr 4 * 5` # 오류
곱셈 r=`expr 4 * 5`
2. $(( ))
r=$(( 4 + 5 ) )
을 사용하세요. echo $r
3. $[ ]
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
뺄셈
r=`expr 40 - 5`
r=$(( 40 - 5 ))
r=$[ 40 - 5 ]
echo $r
나머지 구하기
r=$[ 100 % 43 ]
echo $r
Powered(예: 2의 3승)
r=$(( 2 ** 3 ))
r=$[ 2 ** 3 ]
echo $r
참고: expr 아니요 곱셈
4. let 명령을 사용하세요
추가:
n=10
let n=n+1
echo $n #n=11
곱하기:
let m=n*10
echo $m
Division:
let r=m/10
echo $r
나머지 찾기:
let r=m%7
echo $r
Power:
let r=m**2
echo $r
Bash 쉘에는 4가지 산술 연산 방법이 있지만 모두 크로스 플랫폼인 것은 아닙니다. expr을 사용하는 것이 좋습니다.
또한 스크립트에서는 종종 add 1 작업을 사용할 수 있습니다.
m=$[ m + 1]
m=`expr $m + 1`
m=$(($m + 1 ))
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)
相关推荐:
위 내용은 Linux의 쉘 산술 연산에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!