随机数生成器及case语句

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了随机数生成器及case语句相关的知识,希望对你有一定的参考价值。

一、随机数生成器

            /dev/random和/dev/urandom,区别:random它是收集一些键盘鼠标等敲击的次数间隔时间等操作,把他们作为随机数保存在 “熵池” 里面,当用到的时候从“熵池”里面取出,当“熵池”里面的数消耗完后,会卡在界面等待你敲键盘等操作生成随机数,安全等级高。而urandom 当“熵池” 里的数消耗完后,不会卡死,会利用软件来生成随机数,安全等级低。
    练习:生成10个随机数,找出最大的那个:
    [[email protected] ~]# cat max.sh 
    #!/bin/bash

    MAX=0
    for i in {1..10}
    do
            MYRANDOM=$RANDOM #生成随机数保存在MYRANDOM里
            echo $MYRANDOM
            [ $MYRANDOM -gt $MAX  ] && MAX=$MYRANDOM
    done
    echo "MAX=$MAX"

二、case 选择结构语句
用法:

    case SWITCH in
                    value1)
                            statement。。。
                            ;;
                    value2)
                            statement。。。
                            ;;
                            。。。
                    *)
                    statement。。。
                    ;;
            esac

练习:写一个脚本showlogged.sh,其用法格式为:
showlogged.sh -v -c -h|--help
其中,-h选项只能单独使用,用于显示帮助信息;-c选项时,显示当前系统上登录的所有用户数;如果同时使用了-v选项,则既显示同时登录的用户数,又显示登录的用户的相关信息;
#!/bin/bash

for i in `seq 1 $#`
do
        if [ $# -gt 0 ];then
        case  $1 in
        ‘-c‘)
                DEBUGC=1
                shift
        ;;
        ‘-v‘)
                DEBUGV=1
                shift
        ;;
            *)
                echo "Usage:`basename $0`  -v| -c| -h|--help"
        ;;
        esac
        fi
done

if [[ $DEBUGC -eq 1  ]];then
        echo "当前在线人数:`who | wc -l`"
fi
if [[ $DEBUGV -eq 1  ]];then
        who   
fi

以上是关于随机数生成器及case语句的主要内容,如果未能解决你的问题,请参考以下文章

20180718 控制语句

Oracle Decode()函数和CASE语句的比较

浅谈Shell脚本中for循环while循环及case分支语句

SQL Select 语句的用法

P5147 随机数生成器 [数列]

编译原理—中间代码生成布尔表达式翻译短路计算控制流语句翻译条件语句循环语句