在1-15内取一个随机数(一条命令搞定)
2016-04-18 15:25
197 查看
1. [root@www ~]# echo `expr ${RANDOM} % 14 + 1 `
10
[root@www ~]#
2. [root@www ~]# echo $(( ${RANDOM} % 14 + 1 ))
4
[root@www ~]#
3. [root@www ~]# echo $[ ${RANDOM} % 14 + 1 ]
13
[root@www ~]#
4. [root@www ~]# let m=${RANDOM}%14+1 ;echo $m
8
[root@www ~]#
虽然Bash shell 有四种算术运算方法,但并不是每一种都是跨平台的,建议使用expr。
另外,我们在 script 中经常有加1操作,以下四法皆可:
m=$[ m + 1]
m=`expr $m + 1`
m=$(($m + 1))
let m=m+1
用mysql函数实现:
mysql> select rand();
+--------------------+
| rand() |
+--------------------+
| 0.9146193386191682 |
+--------------------+
1 row in set (0.00 sec)
mysql> select ceil(100*rand()),ceil(100*rand());
+------------------+------------------+
| ceil(100*rand()) | ceil(100*rand()) |
+------------------+------------------+
| 31 | 78 |
+------------------+------------------+
1 row in set (0.00 sec)
mysql> select floor(100*rand()),floor(100*rand());
+-------------------+-------------------+
| floor(100*rand()) | floor(100*rand()) |
+-------------------+-------------------+
| 95 | 45 |
+-------------------+-------------------+
1 row in set (0.00 sec)
mysql> select mod(floor(100*rand()),15),floor(100*rand());
+---------------------------+-------------------+
| mod(floor(100*rand()),15) | floor(100*rand()) |
+---------------------------+-------------------+
| 11 | 69 |
+---------------------------+-------------------+
1 row in set (0.00 sec)
mysql> select mod(floor(100*rand()),15),floor(100*rand()) % 15;
+---------------------------+------------------------+
| mod(floor(100*rand()),15) | floor(100*rand()) % 15 |
+---------------------------+------------------------+
| 9 | 11 |
+---------------------------+------------------------+
1 row in set (0.00 sec)
mysql>
[root@192 ~]# /usr/bin/mysql -p3306 --socket=/data/3306/mysql.sock -e "select mod(ceil(100000*rand()),14) + 1 ;" | awk 'NR==2{print $0}'
6
[root@192 ~]# /usr/bin/mysql -p3306 --socket=/data/3306/mysql.sock -e "select mod(ceil(100000*rand()),14) + 1 ;" | awk 'NR==2{print $0}'
14
[root@192 ~]# /usr/bin/mysql -p3306 --socket=/data/3306/mysql.sock -e "select mod(ceil(100000*rand()),14) + 1 ;" | awk 'NR==2{print $0}'
3
[root@192 ~]# /usr/bin/mysql -p3306 --socket=/data/3306/mysql.sock -e "select mod(ceil(100000*rand()),14) + 1 ;" | awk 'NR==2{print $0}'
8
[root@192 ~]# /usr/bin/mysql -p3306 --socket=/data/3306/mysql.sock -e "select mod(ceil(100000*rand()),14) + 1 ;" | awk 'NR==2{print $0}'
7
[root@192 ~]#
完美,练习mysql的函数。
10
[root@www ~]#
2. [root@www ~]# echo $(( ${RANDOM} % 14 + 1 ))
4
[root@www ~]#
3. [root@www ~]# echo $[ ${RANDOM} % 14 + 1 ]
13
[root@www ~]#
4. [root@www ~]# let m=${RANDOM}%14+1 ;echo $m
8
[root@www ~]#
虽然Bash shell 有四种算术运算方法,但并不是每一种都是跨平台的,建议使用expr。
另外,我们在 script 中经常有加1操作,以下四法皆可:
m=$[ m + 1]
m=`expr $m + 1`
m=$(($m + 1))
let m=m+1
用mysql函数实现:
mysql> select rand();
+--------------------+
| rand() |
+--------------------+
| 0.9146193386191682 |
+--------------------+
1 row in set (0.00 sec)
mysql> select ceil(100*rand()),ceil(100*rand());
+------------------+------------------+
| ceil(100*rand()) | ceil(100*rand()) |
+------------------+------------------+
| 31 | 78 |
+------------------+------------------+
1 row in set (0.00 sec)
mysql> select floor(100*rand()),floor(100*rand());
+-------------------+-------------------+
| floor(100*rand()) | floor(100*rand()) |
+-------------------+-------------------+
| 95 | 45 |
+-------------------+-------------------+
1 row in set (0.00 sec)
mysql> select mod(floor(100*rand()),15),floor(100*rand());
+---------------------------+-------------------+
| mod(floor(100*rand()),15) | floor(100*rand()) |
+---------------------------+-------------------+
| 11 | 69 |
+---------------------------+-------------------+
1 row in set (0.00 sec)
mysql> select mod(floor(100*rand()),15),floor(100*rand()) % 15;
+---------------------------+------------------------+
| mod(floor(100*rand()),15) | floor(100*rand()) % 15 |
+---------------------------+------------------------+
| 9 | 11 |
+---------------------------+------------------------+
1 row in set (0.00 sec)
mysql>
[root@192 ~]# /usr/bin/mysql -p3306 --socket=/data/3306/mysql.sock -e "select mod(ceil(100000*rand()),14) + 1 ;" | awk 'NR==2{print $0}'
6
[root@192 ~]# /usr/bin/mysql -p3306 --socket=/data/3306/mysql.sock -e "select mod(ceil(100000*rand()),14) + 1 ;" | awk 'NR==2{print $0}'
14
[root@192 ~]# /usr/bin/mysql -p3306 --socket=/data/3306/mysql.sock -e "select mod(ceil(100000*rand()),14) + 1 ;" | awk 'NR==2{print $0}'
3
[root@192 ~]# /usr/bin/mysql -p3306 --socket=/data/3306/mysql.sock -e "select mod(ceil(100000*rand()),14) + 1 ;" | awk 'NR==2{print $0}'
8
[root@192 ~]# /usr/bin/mysql -p3306 --socket=/data/3306/mysql.sock -e "select mod(ceil(100000*rand()),14) + 1 ;" | awk 'NR==2{print $0}'
7
[root@192 ~]#
完美,练习mysql的函数。
相关文章推荐
- C#定时器和随机数
- 基于C#生成随机数示例
- ORACLE随机数DBMS_RANDOM包
- C语言编程中生成随机数的入门教程
- C# 生成随机数的代码
- php源码分析之DZX1.5随机数函数random用法
- php获取四位字母和数字的随机数的实现方法
- 用C#生成不重复的随机数的代码
- C#利用Random得随机数求均值、方差、正态分布的方法
- JS实现转动随机数抽奖的特效代码
- JS中生成随机数的用法及相关函数
- javascript产生随机数方法汇总
- js生成随机数的过程解析
- JS中产生20位随机数以0-9为例也可以是a-z A-Z
- JavaScript 生成随机数并自动大小排序
- jQuery实现转动随机数抽奖效果的方法
- js 随机数代码大全第1/2页
- Shell脚本实现随机数多种方法介绍(date、random、uuid)
- Qt定时器和随机数详解
- c语言随机数函数示例