Shell编程之case语句与循环语句

case多分支语句

循环语句:

1.for循环语句

2.while循环语句

3.until循环语句

Shell函数
Shell数组

case语句的结构:

针对变量的不同取值,分别执行不同的命令序列

半个)匹配模式

;;双分号结束执行

*号表示默认语句

默认语句结束没有双分号

结尾把case倒过来写,表示一个结构的结束

在这里插入图片描述

先stop

中间输入sleep休眠5秒钟(需要有休眠时间)

再start

case语句示例:

Demo1:
输入字符,判断是属于字符,数字
#!/bin/bash
read -p "请输入一个字符:" key
case $key in
  [a-z]|[A-Z])
        echo "你输入的是字母"
  ;;
  [0-9])
        echo "你输入的是数字"
  ;;
  *)
        echo "你输入的特殊符号"
esac
[root@localhost opt]# chmod +x demo1.sh
[root@localhost opt]# ./demo1.sh
请输入一个字符:i
你输入的是字母

Demo2:

成绩测试实验:
#!/bin/bash
read -p "请输入成绩(0-100):" score
case $score in
  [8-9][0-9]|100)
        echo "成绩优秀"
  ;;
  7[0-9])
        echo "成绩良好"
  ;;
  6[0~9])
        echo "成绩合格"
  ;;
  [0~9]|[1-5][0-9])
        echo "您的成绩不合格"
  ;;
  *)
        echo "您输入的成绩无效"
esac
[root@localhost opt]# ./demo1.sh
请输入成绩(0-100):89
成绩优秀
[root@localhost opt]# ./demo1.sh
请输入成绩(0-100):55
您的成绩不合格
[root@localhost opt]# ./demo1.sh
请输入成绩(0-100):77
成绩良好
[root@localhost opt]# ./demo1.sh
请输入成绩(0-100):110
您输入的成绩无效

for语句的结构:

读取不同的变量值,用来逐个执行同一组命令

使用场景:

1.指定次数循环

2.遍历循环(集合的范围,挨个执行)(增强循环,foreach)
在这里插入图片描述
在这里插入图片描述

Demo3:
#!/bin/bash
for ((i=1;i<=10;i++))
do
        echo $i
done

vim name.txt
zhangsan/lisi/wangwu
#!/bin/bash
TMP=$(cat /opt/name.txt)
for USER in $TMP
do
        echo "用户是$USER"
done
[root@localhost opt]# ./demo2.sh
用户是zhangsan
用户是lisi
用户是wangwu
批量添加用户并设置密码:
#!/bin/bash
TMP=$(cat /opt/name.txt)
for USER in $TMP
do
        useradd $USER
        echo "123456" | passwd --stdin $USER &> /dev/null
        echo "用户是$USER"
done

while语句的结构:

在这里插入图片描述
在这里插入图片描述

Demo4:
批量添加用户:
#!/bin/bash
num=1
while [ $num -le 10 ]
do
  echo $num
  let num++
done
批量删除用户:
#!/bin/bash
PRE="stu"
num=1
while [ $num -le 20 ]
do
#useradd $PRE$num
#echo "123456"|passwd --stdin $PRE$num &> /dev/null
  userdel -r $PRE$num &> /dev/null
  let num++
done
~       
Demo5:
猜价格游戏
#!/bin/bash
#商品价格
PRICE=$(expr $RANDOM % 1000)
#猜测次数
TIMES=0
echo "猜价格游戏.."
while true
do
  read -p " 请输入商品价格(0-999):" num
  let TIMES++
  if [ $num -eq $PRICE ];then
  echo "恭喜猜中了"
  echo "总共猜了$TIMES"
  exit 0
elif [ $num -gt $PRICE ];then
        echo "太高了哦!"
  else
        echo "太低了哦!"
  fi
done
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值