$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

脚本编辑$RANDOM 和 case语句 (笔记)相关推荐

  1. bash脚本之case语句应用,while、until和select循环应用及其示例

    bash脚本编程: case选择分支结构: case: case 词 in [模式 [| 模式]...) 命令 ;;]... esac 在脚本中使用case的结构: case ${VAR_NAME} ...

  2. shell脚本条件测试、正整数字符串比较与if、case语句

    目录 条件测试 三种测试方法 选项 比较整数数值 字符串比较 脚本中常用命令 echo命令 date命令 cal命令 tr命令 cut命令 sort命令 uniq命令 cat多行重定向 if语句 分支 ...

  3. Linux高级专题详解--shell编程大全(shell变量,if语句,case语句,for循环,while循环,函数调用,数组,正则表达式,shell脚本三剑客--grep,sed,awk家族)

    shell编程 初始shell 程序 语言 编程 ---------------------------------- 语言 自然语言:汉语.英语 计算机语言:c语言.c++.(java php py ...

  4. shell脚本求和_【零基础学云计算】Shell编程之case语句与循环语句

    case多分支语句 循环语句 for循环语句 while循环语句 untli循环语句 Shell函数 Shell数组 case语句的结构 针对变量的不同取值,分别执行不同的命令序列 case 变量值 ...

  5. Linux疑难杂症解决方案100篇(五)-SHELL脚本中case语句的多种使用场景

    目录 掌握case语句的基本语法结构 掌握函数的定义及调用 掌握常用的正则表达式元字符含义 一.case语句 case语句为多重匹配语句 如果匹配成功,执行相匹配的命令 1. 语法结构 说明:patt ...

  6. linux sh文件case,Shell脚本case语句简明教程

    Shell case语句为多选择语句.可以用case语句匹配一个值与一个模式,如果匹配成功,执行相匹配的命令.case语句格式如下: case 值 in 模式1) command1 command2 ...

  7. 第八课-第二讲 08_02_bash脚本编程之七 case语句及脚本选项进阶

    第八课-第二讲 08_02_bash脚本编程之七 case语句及脚本选项进阶 一. 面向过程 控制结构 顺序结构 选择结构 循环结构 选择结构 if语句 单分支,双分支,多分支 case 语句 cas ...

  8. shell支持loop吗_Shell脚本case语句和loop语句,与,循环

    case分支语句 case语句可以使用脚本程序的结构更加清晰,层次分明. case语句的结构 case语句主要适用于以下情况:莫个变量存在多种取值,需要对其中的每一种取值分别执行不同的命令序列.跟if ...

  9. 2个简单shell脚本(if,while,case语句)

    实验要求: 1.编写一个名为sum.sh的脚本,提示用户输入一个小于100的整数,并计算从1到该数之间所有整数的和 2.编写一个名为tar.sh的脚本,用来解压.tar.gz或.tar.bz2格式的压 ...

最新文章

  1. 8086汇编学习笔记10-端口
  2. 2020年余丙森概率统计强化笔记-第五章 大数定律和中心极限定理 第六章 数理统计
  3. linux iconv函数失败,Linux 编码转换 (iconv失败的解决方法)
  4. 感谢CSDN赠送的2021年新年礼物
  5. 手写springboot_Spring Boot 入门教程 | 图文讲解
  6. 看了500个人的面经:我发现混的好的程序员,都在用这个数据库!
  7. 医疗行业源代码该如何保密
  8. 招银网络-信息科技风险管理工程师-笔试-安全
  9. iOS大神牛人的博客集合
  10. oracle裁员原因_导致Oracle全球性裁员的原因有哪些?
  11. 视频封装格式篇--MP4
  12. html embed音乐循环,加入视频或音乐——embed基本语法
  13. 日期,Wed Nov 24 2021 08:00:00 GMT+0800 (GMT+08:00) 相互转换
  14. 巧用 CSS 实现炫彩三角边框动画
  15. MongoDB 主从复制(Master-Slaver)实验
  16. nodejs到底是什么?
  17. 可视化篇:Echarts2.0引入百度地图(转载)
  18. Origin pro更改语言灰色时的解决办法
  19. vue 关闭vue项目中烦死人的ESlint
  20. 汇编总结:lea指令

热门文章

  1. iMindMate- A new mind mapping software.
  2. HttpApplication的认识与加深理解
  3. 【PMP】Head First PMP 学习笔记 第十章 沟通管理
  4. 自定义Sublime Text图标详细教程
  5. android检查可用网络的代码
  6. AjaxPro无刷新选择列表框/下拉框[方便|稳定]
  7. Etcd集群的介绍和选主应用
  8. python中如何统计元组中元素的个数_python-无论元素顺序如何,获取列表中的元组数...
  9. Spring Security OAuth2整合JWT
  10. RocketMQ如何保证消息不丢失? 如何快速处理积压消息?