1. 程式人生 > >隨機數生成器及case語句

隨機數生成器及case語句

wc -l 間隔 相關 練習 val 軟件 最大 信息 $1

一、隨機數生成器

            /dev/random和/dev/urandom,區別:random它是收集一些鍵盤鼠標等敲擊的次數間隔時間等操作,把他們作為隨機數保存在 “熵池” 裏面,當用到的時候從“熵池”裏面取出,當“熵池”裏面的數消耗完後,會卡在界面等待你敲鍵盤等操作生成隨機數,安全等級高。而urandom 當“熵池” 裏的數消耗完後,不會卡死,會利用軟件來生成隨機數,安全等級低。
    練習:生成10個隨機數,找出最大的那個:
    [root@localhost ~]# 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語句