## 写一个脚本产生随机3位的数字,并且可以根据用户的输入参数来判断输出几组
## 比如, 脚本名称为 abc.sh
## 执行方法:
## bash abc.sh 直接产生一组随机数
## bash abc.sh 10 产生10组3位数字
#!/bin/bash
## 思路:产生随机的1位数字,然后产生三次,在将三个数字组合在一起
## 产生一位数字的函数
get_a_num() {
## 除以10取余数
n=$[$RANDOM%10]
echo $n
}
## 组合三位数字的函数
get_numbers(){
for i in 0 1 2
do
## 数组赋值
a[$i]=`get_a_num`
done
## 将多余的空格删除掉
echo ${a[@]} |sed 's/ //g'
}
if [ $# -gt 1 ]
then
echo "The number of your parameters can only be 1."
echo "example: bash $0 5"
exit
fi
## 如果没有提供参数,那直接产生一个3位数字
## 如果提供了参数,要判断参数是否是一个正整数
if [ $# -eq 1 ];then
## 将所有数字删除,如果是空,就说明是纯数字
m=`echo $1|sed 's/[0-9]//g'`
if [ -n "$m" ];then
echo "USeage bash $0 n, n is number,example: bash $0 5"
exit
else
echo "The numbers are:"
for i in `seq $1`
do
get_numbers
done
fi
else
get_numbers
fi
<<'COMMENT'
关键知识点总结:
1)RANDOM为linux系统产生随机数的一个变量,取值范围为:0-32767(2^15-1)
2) 数组可以元素为单位赋值:a[0]=1;a[1]=2,获取数组的值:echo ${a{@}},判断元素之间是否有空格
3)判断一个字符是否为纯数字,可以:echo $a|sed 's/[0-9]//g',看它是否为空
4)[ -n "$a" ] 判断一个变量的值是否不为空;[ -z "$a" ] 判断一个变量的值是否为空
COMMENT
随机产生三位数字
转载
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
linux 产生三位数的随机数Linux