0

0

一文简述Shell中的random随机数

絕刀狂花

絕刀狂花

发布时间:2025-07-18 10:16:36

|

685人浏览过

|

来源于php中文网

原创

大家好!今天我们来探讨一下shell中的random随机数。随机数的生成和应用在编程中非常常见,掌握其使用方法是非常有用的。

1、基本用法 bash中有一个内置的变量$RANDOM,默认生成的随机数范围是0到32767。

set | grep RANDOM:查看上一次生成的随机数

代码语言:powershell

# 默认是0~32767
echo $RANDOM
# 查看上一次生成的随机数
set | grep RANDOM
# 生成0~1之间的随机数
echo $[$RANDOM%2]
# 生成0~2之间的随机数
echo $[$RANDOM%3]
# 生成0~100内的随机数
echo $[$RANDOM%101]

依此类推,生成0~n之间的随机数:echo $[$RANDOM%(n+1)]

通过巧妙地使用加法,可以生成更复杂的随机数范围:

代码语言:powershell

# 生成50-100之内的随机数
echo $[$RANDOM%51+50]
# 生成三位数的随机数
echo $[$RANDOM%900+100]

2、简单应用 我们可以编写一个脚本,生成一个phonenum.txt文件,随机生成以139开头的手机号码1000个,每个号码一行。

1)创建一个random.sh脚本

代码语言:powershell

vim random.sh

2)根据要求编写脚本文件

方法1:使用列表循环

代码语言:powershell

#!/bin/bash
# 循环1000次生成电话号码并保存到文件
for i in {1..1000}
do
    n1=$[RANDOM%10]
    n2=$[RANDOM%10]
    n3=$[RANDOM%10]
    n4=$[RANDOM%10]
    n5=$[RANDOM%10]
    n6=$[RANDOM%10]
    n7=$[RANDOM%10]
    n8=$[RANDOM%10]
    echo "139$n1$n2$n3$n4$n5$n6$n7$n8" >> phonenum.txt
done

一文简述Shell中的random随机数

方法2:使用类C风格的for循环

代码语言:powershell

#!/bin/bash
# random phonenum
# 循环1000次生成电话号码
for ((i=1;i<=1000;i++))
do
    echo "139$((RANDOM%10))$((RANDOM%10))$((RANDOM%10))$((RANDOM%10))$((RANDOM%10))$((RANDOM%10))$((RANDOM%10))$((RANDOM%10))" >> phonenum.txt
done

方法3:使用while循环

赣极购物商城网店建站软件系统
赣极购物商城网店建站软件系统

大小仅1兆左右 ,足够轻便的商城系统; 易部署,上传空间即可用,安全,稳定; 容易操作,登陆后台就可设置装饰网站; 并且使用异步技术处理网站数据,表现更具美感。 前台呈现页面,兼容主流浏览器,DIV+CSS页面设计; 如果您有一定的网页设计基础,还可以进行简易的样式修改,二次开发, 发布新样式,调整网站结构,只需修改css目录中的css.css文件即可。 商城网站完全独立,网站源码随时可供您下载

下载

代码语言:powershell

#!/bin/bash
i=1
while [ $i -le 1000 ]
do
    n1=$[$RANDOM%10]
    n2=$[$RANDOM%10]
    n3=$[$RANDOM%10]
    n4=$[$RANDOM%10]
    n5=$[$RANDOM%10]
    n6=$[$RANDOM%10]
    n7=$[$RANDOM%10]
    n8=$[$RANDOM%10]
    echo "139$n1$n2$n3$n4$n5$n6$n7$n8" >> phonenum.txt
    let i++
done

使用break

一文简述Shell中的random随机数

3、嵌套循环 嵌套循环指的是在一个循环体内包含另一个完整的循环。在外部循环的每次执行过程中都会触发内部循环,直到内部循环完成一次后,才会继续执行下一次的外部循环。

for、while和until循环可以相互嵌套

例如,以经典的打印九九乘法表为例:

方法1:使用for循环

代码语言:powershell

#!/bin/bash
for ((y=1;y<=9;y++))
do
    for ((x=1;x<=y;x++))
    do
        echo -ne "$x*$y=$[$x*$y]\t"
    done
    echo
done

一文简述Shell中的random随机数

方法2:使用while循环

代码语言:powershell

#!/bin/bash
y=1
while [ $y -le 9 ]
do
    x=1
    while [ $x -le $y ]
    do
        echo -ne "$x*$y=$[$x*$y]\t"
        let x++
    done
    echo
    echo
    let y++
done

方法3:使用until循环

代码语言:powershell

#!/bin/bash
y=1
until [ $y -gt 9 ]
do
    x=1
    until [ $x -gt $y ]
    do
        echo -ne "$x*$y=$[ $x*$y ]\t"
        let x++
    done
    echo
    echo
    let y++
done

相关专题

更多
while的用法
while的用法

while的用法是“while 条件: 代码块”,条件是一个表达式,当条件为真时,执行代码块,然后再次判断条件是否为真,如果为真则继续执行代码块,直到条件为假为止。本专题为大家提供while相关的文章、下载、课程内容,供大家免费下载体验。

91

2023.09.25

html编辑相关教程合集
html编辑相关教程合集

本专题整合了html编辑相关教程合集,阅读专题下面的文章了解更多详细内容。

38

2026.01.21

三角洲入口地址合集
三角洲入口地址合集

本专题整合了三角洲入口地址合集,阅读专题下面的文章了解更多详细内容。

19

2026.01.21

AO3中文版入口地址大全
AO3中文版入口地址大全

本专题整合了AO3中文版入口地址大全,阅读专题下面的的文章了解更多详细内容。

255

2026.01.21

妖精漫画入口地址合集
妖精漫画入口地址合集

本专题整合了妖精漫画入口地址合集,阅读专题下面的文章了解更多详细内容。

62

2026.01.21

java版本选择建议
java版本选择建议

本专题整合了java版本相关合集,阅读专题下面的文章了解更多详细内容。

3

2026.01.21

Java编译相关教程合集
Java编译相关教程合集

本专题整合了Java编译相关教程,阅读专题下面的文章了解更多详细内容。

14

2026.01.21

C++多线程相关合集
C++多线程相关合集

本专题整合了C++多线程相关教程,阅读专题下面的的文章了解更多详细内容。

6

2026.01.21

无人机驾驶证报考 uom民用无人机综合管理平台官网
无人机驾驶证报考 uom民用无人机综合管理平台官网

无人机驾驶证(CAAC执照)报考需年满16周岁,初中以上学历,身体健康(矫正视力1.0以上,无严重疾病),且无犯罪记录。个人需通过民航局授权的训练机构报名,经理论(法规、原理)、模拟飞行、实操(GPS/姿态模式)及地面站训练后考试合格,通常15-25天拿证。

28

2026.01.21

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.5万人学习

Git 教程
Git 教程

共21课时 | 2.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号