linux脚本生成随机数,Shell中随机数生成和做算术运算

随机数生成

# RANDOM生成的随机数小于65535;

$ echo $RANDOM

# 对20取模后生成的随机数必定小于20;

$ echo $[RANDOM%20]

1

2

3

4

5

#RANDOM生成的随机数小于65535;

$echo$RANDOM

#对20取模后生成的随机数必定小于20;

$echo$[RANDOM%20]

算术运算

我们使用计算机免不了做一些简单的数学运算,Shell提供了我们这点需求,如果你必须使用小数的话,那就只能请bc/awk帮忙,bc这个独立的程序提供了精确的计算器语言,可以在shell脚本中使用。

如:变量A=10,B=20然后分别使用不同的计算方式进行计算。计算时可以调用变量也可以直接计算,注意有些计算方式的算术运算符可能不同,具体看下面示例。

1)expr用于整数值运算,每一项用空格隔开,如:

# 第一种

$ expr $A \* $B

30

# 第二种

$ expr 20 % 3

2

# 第三种

$ (expr 10 + 20)

30

1

2

3

4

5

6

7

8

9

10

11

#第一种

$expr$A\*$B

30

#第二种

$expr20%3

2

#第三种

$(expr10+20)

30

2)let表示数学计算,但值之间不能有空格,如:

$ let C=$A+$B

$ echo $C

30

1

2

3

$letC=$A+$B

$echo$C

30

$ let C=3\*2

$ echo $C

6

1

2

3

$letC=3\*2

$echo$C

6

3)(())的方式与let类似,如:

$ echo $(($B-$A))

10

1

2

$echo$(($B-$A))

10

4)$[]将中括号内的表达式作为数学运算先计算结果在输出,如:

$ echo $[$A*$B]

200

1

2

$echo$[$A*$B]

200

5)bc利用管道符进行乘法计算,如:

$ echo $B \* $A | bc

200

1

2

$echo$B\*$A|bc

200

6)awk直接计算小数除法,如:

$ awk 'BEGIN{printf "%f\n",10467248/24473084}'

0.427704

1

2

$awk'BEGIN{printf "%f\n",10467248/24473084}'

0.427704

或者

$ awk 'BEGIN{a=10467248/24473084;print a}'

0.427704

1

2

3

$awk'BEGIN{a=10467248/24473084;print a}'

0.427704

当然也支持变量

$ var=10467248

$ awk 'BEGIN{a='$var'/24473084;print a}'

0.427704

1

2

3

$var=10467248

$awk'BEGIN{a='$var'/24473084;print a}'

0.427704

注意,变量需要使用”括起来,不然结果就是错误的了。

$ awk 'BEGIN{a='var'/24473084;print a}'

0

1

2

$awk'BEGIN{a='var'/24473084;print a}'

0

另外,做平方运算。

$ awk 'BEGIN{print 1.11**2.22}'

2.83942

1

2

$awk'BEGIN{print 1.11**2.22}'

2.83942

如果您觉得本站对你有帮助,那么可以支付宝扫码捐助以帮助本站更好地发展,在此谢过。

你可能感兴趣的:(linux脚本生成随机数)