天天看點

腳本編輯$RANDOM 和 case語句 (筆記)

$RANDOM

個人了解是一個用來生成随機數的一個變量 ,由此編寫一個腳本

[root@localhost script]# cat random.sh 

#!/bin/bash

#

declare -i MAX=0

declare -i MIN=0

for I in `seq 1 10`; do

  MYRANDOM=$RANDOM

  [ $I -eq 1 ] && MIN=$RANDOM

  if [ $I -le 9 ]; then

    echo -n "$MYRANDOM,"

  else

    echo "$MYRANDOM"

  fi

  [ $MYRANDOM -gt $MAX ] && MAX=$MYRANDOM

  [ $MYRANDOM -lt $MIN ] && MIN=$MYRANDOM

done

echo $MAX, $MIN

[root@localhost script]# 

此腳本是用來将所生成的随機數  比大小  比出一個最大數和最小數并顯示

腳本執行結果:

[root@localhost script]# bash random.sh 

20744,24195,5854,24168,10197,16685,10095,27664,14198,22593

27664, 5854

程式設計分為兩類

面向過程

    控制結構

        順序結構

        選擇結構

        循環結構

面向對象

選擇結構

if語句: 單分支 雙分支  多分支

現在一種新的選擇結構 case

使用格式

case $1 in

value1)

    statement

    ...

    ;;  (注意一定要加雙分号)

value2)

    ;; 

value3)

    ;;

esac

下面一個簡單的腳本 當使用者在後邊跟一個參數 會識别該是數字還是大寫字母還是小寫字母,還是特殊字元

[root@localhost script]# cat recognition.sh 

[0-9] )

 echo "a number" ;;

[[:upper:]] )

 echo "upper" ;;

[[:lower:]] )

 echo "a lower case" ;;

*)

 echo "Special character";;

執行結果:

[root@localhost script]# ./recognition.sh 2

a number

[root@localhost script]# ./recognition.sh E

upper

[root@localhost script]# ./recognition.sh e

a lower case

[root@localhost script]# ./recognition.sh #

Special character

當然我這個隻支援單字元,以後學習進階了再練習,這裡隻做簡單介紹!!OO

下邊又是一個例子:  個人研究了一上午才把老師所說的編寫出來

這個用途是  使用

./adminustrator -v --add user1,user2,user

這個腳本可以跟多個參數來添加使用者,并且可顯示資訊或者不顯示 後邊可以多個參數

[root@localhost script]# cat adminusers3.sh 

DEBUG=0

ADD=0

DEL=1

for I in `seq 1 $#`; do

-v|--verbose)

  DEBUG=1

  shift ;;

-h|--help)

  echo "Usage: `basename $0` --add USER_LISET --del USER_LIST -v|--verbose -h|--help"

  exit 0 ;;

--add)

  ADD=1

  ADDUSER=$2

  shift 2 ;;

--del)

  DEL=1

  DELUSER=$2

#*)

# echo "unknown option" ;;

if [ $ADD -eq 1 ]; then

  for USER in `echo $ADDUSER | sed 's/,/ /g'`; do

    if id $USER &> /dev/null; then

      [ $DEBUG -eq 1 ] && echo "$USER exist"

    else

      useradd $USER

      [ $DEBUG -eq 1 ] && echo "$USER add finished"

    fi

  done

fi

if [ $DEL -eq 1 ]; then 

  for USER2 in `echo $DELUSER | sed 's@,@ @g'`; do

    if id $USER2 &> /dev/null; then

      userdel -r $USER2

      [ $DEBUG -eq 1 ] && echo "$USER2 del successful!"

      echo "$USER2 is not exist"

End 

Thanks for your watching!

本文轉自Winthcloud部落格51CTO部落格,原文連結http://blog.51cto.com/winthcloud/1651185如需轉載請自行聯系原作者

Winthcloud