`

一个有趣的Shell随机数

阅读更多
需求描述
linux下随机产生一个指定长度的小写字母和数字组合成的字符串

脚本内容
vim random.sh
#!/bin/sh

getrandom(){
 if [ $# -gt 0 ]; then
  size=$1
 else
  size=3
 fi
 cat /dev/urandom | sed 's/[^a-z0-9]//g' | strings -n $size | head -n 1
}

getrandom $1

exit 0


测试
chmod +x random.sh
./random.sh
输出 idr

./random.sh 4
输出 feda

分享到:
评论
1 楼 i-david 2012-04-08  
i-david 写道
突然又发现一个获取随机数的方法,更简单

#!/bin/sh

getrandom(){
    if [ $# -gt 0 ]; then
        size=$1
    else
        size=3
    fi
    date +%N |  awk '{printf("%x",$0)}' | cut -c 1-$size
}

getrandom $1

exit 0


更好的理由,之前的脚本对系统有依赖

效果
root@test:~# ./random.sh
dd2
root@test:~# ./random.sh
11b
root@test:~# ./random.sh
1af
root@test:~# ./random.sh 8
3a42b8b7

相关推荐

Global site tag (gtag.js) - Google Analytics