bash脚本编程之七 case语句以及脚本选项

简介:

写一个脚本,用RANDOM生成10个随机数,并找出其中的最大值和最小值

#!/bin/bash

ran=$RANDOM

max=$ran

min=$ran

for i in {1..10}

do

echo  $ran

ran=$RANDOM

if [ $ran -gt $max ];then

max=$ran

fi

if [ $ran -lt $min ];then

min=$ran

fi

done

echo  "MAX: $max  MIN:$min"


面向过程语言三种控制结构:

    顺序结构:

    选择结构:if、case

    循环结构:for、while、until


选择结构:

    if:单分支,双分支,多分支

    单分支:

        if condition  ;then

            statement;

            ...

        fi

    双分支:

        if condition ;then

            statement

            ... 

        else 

            statement

            ...

        fi

    多分支

        if condition ;then

            statement

            ...

        elif condition2 ;then

            statement

            ...

        else

            statement

            ...

        fi

    

    case:

        case  SWITCH  in

        value1)

            statement

            ...

            ;;

        value2)

            statement

            ....

            ;;

         *)

            statement

            ...

            ;;

        esac


写一个脚本,可以接受选项以及参数,而后能获取每一个选项及选项的参数;并能根据选项和参数做出特定的操作.比如

    adminusers.sh --add tom,jerry --del tom,blair -v|--verbose -h|--help



#!/bin/bash

if [ $# -eq 0 ];then 

echo "Usage: `basename $0` {--add|--del}  user1,user2 ... [-v|--verbose] or {-h|--help}"

exit 1

fi

declare -i debug=0

declare -i adduser=0

declare -i deluser=0

for  i in  `seq 0 $#`

do

if [ $# -gt 0 ]; then

case $1 in

--add)

adduser=1 

user1=$2

shift 2 

;;

--del)

deluser=1

user2=$2

shift 2

;;

-v|--verbose)

debug=1

shift

;;

-h|--help)

echo "Usage: `basename $0` {--add|--del}  user1,user2 ... [-v|--verbose] or {-h|--help}"

exit 0 

;;

*)

echo "Usage: `basename $0` {--add|--del}  user1,user2 ... [-v|--verbose] or {-h|--help}"

        exit 7 

         ;;

esac

fi

done


if [ $adduser -eq 1 ]; then

for i in  `echo  $user1|sed 's/,/ /g'` 

do

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

[ $debug -eq 1 ]&& echo "user $i exists!"

else 

useradd $i ;

[ $debug -eq 1 ]&& echo "user $i add finished!"

fi

done

fi

if [ $deluser -eq 1 ]; then

        for i in  `echo  $user2|sed 's/,/ /g'` 

        do

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

userdel -r  $i

                        [ $debug -eq 1 ]&& echo "user $i del finished!"

                else 

                        [ $debug -eq 1 ]&& echo "user $i not exists!"

                fi

        done

fi
















本文转自biao007h51CTO博客,原文链接: http://blog.51cto.com/linzb/1736853,如需转载请自行联系原作者



相关文章
|
7月前
|
监控 安全 Shell
防止员工泄密的措施:在Linux环境下使用Bash脚本实现日志监控
在Linux环境下,为防止员工泄密,本文提出使用Bash脚本进行日志监控。脚本会定期检查系统日志文件,搜索敏感关键词(如"password"、"confidential"、"secret"),并将匹配项记录到临时日志文件。当检测到可疑活动时,脚本通过curl自动将数据POST到公司内部网站进行分析处理,增强信息安全防护。
191 0
|
2月前
|
Devops 关系型数据库 大数据
1000个开源免费的bash脚本合集
【10月更文挑战第4天】
|
7月前
|
存储 Shell Linux
Linux Bash 脚本中的 IFS 是什么?
【4月更文挑战第25天】
147 0
Linux Bash 脚本中的 IFS 是什么?
|
4月前
|
Shell
一个能够生成 Markdown 表格的 Bash 脚本
【8月更文挑战第20天】这是一个使用Bash脚本生成Markdown表格的示例。脚本首先设置表头与内容数据,然后输出Markdown格式的表格。用户可以根据需要自定义表格内容。使用时,只需将脚本保存为文件(如 `generate_table.sh`),赋予执行权限,并运行它,即可在终端看到生成的Markdown表格。
|
4月前
|
Unix Shell Linux
在Linux中,什么是Bash脚本,并且如何使用它。
在Linux中,什么是Bash脚本,并且如何使用它。
|
4月前
|
Shell 开发者
深入理解Bash脚本中的函数
【8月更文挑战第20天】
78 0
|
4月前
|
存储 Shell 数据处理
深入探讨Bash脚本中的数组
【8月更文挑战第20天】
33 0
|
4月前
|
存储 Shell
Bash 脚本中的 `hash` 命令
【8月更文挑战第19天】
43 0
|
6月前
|
Unix Shell Linux
技术经验分享:Bash脚本命令使用详解
技术经验分享:Bash脚本命令使用详解
48 0
|
7月前
|
存储 弹性计算 运维
用bash脚本创建目录
【4月更文挑战第29天】
56 3