且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

脚本编辑$RANDOM 和 case语句 (笔记)

更新时间:2022-09-30 20:41:59

$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

[root@localhost script]# 


编程分为两类

面向过程

    控制结构

        顺序结构

        选择结构

        循环结构

面向对象


选择结构

if语句: 单分支 双分支  多分支


现在一种新的选择结构 case

使用格式

case $1 in

value1)

    statement

    ...

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

value2)

    statement

    ...

    ;; 

value3)

    statement

    ...

    ;;

esac


下面一个简单的脚本 当用户在后边跟一个参数 会识别该是数字还是大写字母还是小写字母,还是特殊字符

[root@localhost script]# cat recognition.sh 

#!/bin/bash

#

case $1 in

[0-9] )

 echo "a number" ;;

[[:upper:]] )

 echo "upper" ;;

[[:lower:]] )

 echo "a lower case" ;;

*)

 echo "Special character";;

esac

[root@localhost script]# 


执行结果:

[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

[root@localhost script]# 


当然我这个只支持单字符,以后学习高级了再练习,这里只做简单介绍!!OO


下边又是一个例子:  个人研究了一上午才把老师所说的编写出来

这个用途是  使用

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

这个脚本可以跟多个参数来添加用户,并且可显示信息或者不显示 后边可以多个参数


[root@localhost script]# cat adminusers3.sh 

#!/bin/bash

#

DEBUG=0

ADD=0

DEL=1

for I in `seq 1 $#`; do

case $1 in

-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

  shift 2 ;;

#*)

# echo "unknown option" ;;

esac

done


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!"

    else

      echo "$USER2 is not exist"

    fi

  done

fi

[root@localhost script]# 



End 

Thanks for your watching!

本文转自Winthcloud博客51CTO博客,原文链接http://blog.51cto.com/winthcloud/1651185如需转载请自行联系原作者


Winthcloud