Linxu-03Shell 编程之 case 语句 与循环语句

case语句的结构

case 变量值 in

模式 1)

 命令序列 1

 ;;

模式 2)

 命令序列 2

 ;;

 „„

* )

 默认命令序列

esac

使用case分支语句时,有几个注意特点

Ø case 行尾必须为单词“in”,每一模式必须以右括号“)”结束。

Ø 双分号“;;”表示命令序列的结束。

Ø 模式字符串中,可以用方括号表示一个连续的范围,如“[0-9]”;还可以用竖杠符

号“|”表示或,如“A|B”。

最后的“*)”表示默认模式,其中的*相当于通配符。

case语句

检查用户输入的字符类型

[root@localhost ~]# vim hitkey.sh

#!/bin/bash

read -p "请输入一个字符,并按 Enter 键确认:" KEY

case "$KEY" in

 [a-z]|[A-Z]) //匹配任意字母

 echo "您输入的是 字母."

 ;;

 [0-9]) //匹配任意数字

 echo "您输入的是 数字."

 ;;

 *) //默认模式,匹配任意字符

 echo "您输入的是 空格、功能键或其他控制字符."

esac

测试并确认脚本

[root@localhost ~]# ./hitkey.sh

请输入一个字符,并按 Enter 键确认:k //输入字母 k

您输入的是 字母.

[root@localhost ~]# ./hitkey.sh

请输入一个字符,并按 Enter 键确认:8 //输入数字 8

您输入的是 数字.

[root@localhost ~]# ./hitkey.sh

请输入一个字符,并按 Enter 键确认:^[[19~ //按 F8 键

您输入的是 空格、功能键或其他控制字符.

编辑脚本

#!/bin/bash

read -p "请输入一个字符: " k

case "$k" in

[a-z]|[A-Z])

    echo "您输入的是 字母: "

    ;;

[0-9])

    echo "您输入的是 数字: "

    ;;

*)

    echo "您输入的是 字符: "

esac

~

测试

Linxu-03Shell 编程之 case 语句 与循环语句_第1张图片

for循环语句

举例:

创建脚本

Linxu-03Shell 编程之 case 语句 与循环语句_第2张图片

创建脚本为jk    

脚本命令

#!/bin/bash

#

for x in $(cat yy)

do

   useradd $x

   echo "123456" | passwd --stdin $x &>/dev/null

done

Linxu-03Shell 编程之 case 语句 与循环语句_第3张图片

运行脚本会自动添加用户

批量添加用户

Linxu-03Shell 编程之 case 语句 与循环语句_第4张图片

脚本命令

#!/bin/bash

#

i=1

while [ $i -le 20 ]

do

    useradd stu${i}

    let i++

done

运行脚本查看

Linxu-03Shell 编程之 case 语句 与循环语句_第5张图片

删除用户

Linxu-03Shell 编程之 case 语句 与循环语句_第6张图片

脚本命令

#!/bin/bash

#

i=1

while [ $i -le 20 ]

do

    userdel stu${i}

    let i++

done

根据 IP 地址列表检查主机状态

添加一个脚本

Linxu-03Shell 编程之 case 语句 与循环语句_第7张图片

添加脚本

Linxu-03Shell 编程之 case 语句 与循环语句_第8张图片

脚本命令

#!/bin/bash

#

for x in $(cat ip.txt)

do

    ping $x -c 3 &> /dev/null

    if [ $? -eq 0 ]

    then

      echo ${x} ok > dui

    else

      echo ${x} bad > cuo

    fi

done

Linxu-03Shell 编程之 case 语句 与循环语句_第9张图片

猜数字游戏

编辑脚本

Linxu-03Shell 编程之 case 语句 与循环语句_第10张图片

脚本命令

#!/bin/bash

#

PRICE=$(expr $RANDOM % 100)

times=0

while true

do

let times++

read -p "0-100 随机" test

    if [ $test -eq $PRICE ]

    then

      echo "选中了"

      echo $times

      exit 0

    elif [ $test -gt $PRICE ]

    then

      echo "高了"

    else

      echo "低了"

    fi

done

运行脚本  随机后面数字随便添   显示高了 就添小点数字

   显示低了 就添大点数字

Linxu-03Shell 编程之 case 语句 与循环语句_第11张图片

你可能感兴趣的:(linux,linux)