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

本文详细介绍了Bashshell中的case语句用法,包括字符类型检查脚本,并展示了for循环用于批量添加和删除用户,以及一个基于IP地址的主机状态检查脚本。同时,还有猜数字游戏的脚本编写和运行示例。
摘要由CSDN通过智能技术生成

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

~

测试

for循环语句

举例:

创建脚本

创建脚本为jk    

脚本命令

#!/bin/bash

#

for x in $(cat yy)

do

   useradd $x

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

done

运行脚本会自动添加用户

批量添加用户

脚本命令

#!/bin/bash

#

i=1

while [ $i -le 20 ]

do

    useradd stu${i}

    let i++

done

运行脚本查看

删除用户

脚本命令

#!/bin/bash

#

i=1

while [ $i -le 20 ]

do

    userdel stu${i}

    let i++

done

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

添加一个脚本

添加脚本

脚本命令

#!/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

猜数字游戏

编辑脚本

脚本命令

#!/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

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

   显示低了 就添大点数字

  • 20
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

X.cc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值