大家好!今天我们来探讨一下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
方法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循环
代码语言: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

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
方法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以上就是一文简述Shell中的random随机数的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号