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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值