吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 788|回复: 4
收起左侧

[学习记录] Shell脚本随机生成三位数

[复制链接]
daokunn 发表于 2023-6-6 23:18

原理

对数n取余,余应为0---(n-1)范围。

我们想要产生0-25范围内的数:

expr $RANDOM % 26

如果想得到1--68范围内的数,可以这样:

 expr $RANDOM % 68 + 1
  • 前面可以得到最小为0,最大为67的随机数,再加上1,很自然的就可以得到最大为1,最小为68的数了。

如果想得到6--87范围内的数:

expr $RANDOM % 82 + 6
  • 前面可以得到最小为0,最大为81的随机数,再加上6,很自然的就可以得到最大为87,最小为6的数了

生成三位数

三位数,也就是100-999,从上面的知识,我们可以得出:

expr $RANDOM % 900 + 100

前面可以得到最小为0,最大为899的随机数,再加上100,很自然的就可以得到最大为999,最小为100的数了。

for i in {1..10000}
do
  num=$[$RANDOM%900+100]
  echo $num
done

image-20230103143646290

for循环

上面的语句可以执行。这种格式的for循环只能接受数字。

如果接受变量,则会无效。

for i in {$1..$2}
do
    echo "$i"
done

为此,可以使用C语言格式的循环。

j=$1
for ((i=1; i<=j; i++))
do
    echo "$i"
done

也就是

#!/bin/bash
read -p "生成多少个3位数呢?请输入:" count
echo $count
echo "结果:"
for((i=1;i<=count;i++))
do
  num=$[$RANDOM%900+100]
  echo $num
done

image-20230103145004617

结果存入文件

#!/bin/bash
read -p "生成多少个3位数呢?请输入:" count
#echo $count
#touch num.txt
#txt=num.txt
for((i=1;i<=count;i++))
do
  num=$[$RANDOM%900+100]
  echo $num
  echo -e "$num\t" >> txt
done

image-20230103145726505

image-20230103145629377

免费评分

参与人数 1热心值 +1 收起 理由
shengruqing + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Eaglecad 发表于 2023-6-6 23:55
不错,加油
13932140048 发表于 2023-6-7 05:21
头像被屏蔽
mokson 发表于 2023-6-7 14:26
 楼主| daokunn 发表于 2023-6-7 21:33
mokson 发表于 2023-6-7 14:26
指的是用 powershell 吗?

不是windows系统的powershell,是Linux系统的Shell
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 22:32

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表