Linux系统中Shell编程之case循环、for循环及While循环的实际使用

网友投稿 244 2022-11-10

Linux系统中Shell编程之case循环、for循环及While循环的实际使用

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

case多分支语句

case语句的结构

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

case 变量值 in 模式 1) 命令序列 1 ;; 模式 2) 命令序列 2 ;; *) 默认命令序列 esac

case语句应运示例

示例1击键类型识别(1)提示用户输入一个字符(2)判断出该字符是字母、数字

[root@localhost ~]# vim 1.sh #!/bin/bash read -p "请您输入一个字符:" key case $key in [ a-z]|[A-Z]) echo "你输入的是字母" ;; [0-9]) echo "你输入的是数字" ;; esac [root@localhost ~]# chmod +x 1.sh [root@localhost ~]# ./1.sh

[root@localhost ~]# vim myprog.sh #!/bin/bash case "$1" in start) echo -n "正在启动sleep服务..." if sleep 7200 & then echo "OK" fi ;; stop) echo -n "正在停止sleep服务...." pkill "sleep" &> /dev/null echo "OK" ;; status) if pgrep "sleep" &>/dev/null;then echo "sleep 服务已启动." else echo "sleep服务已经停止" fi ;; restart) $0 stop $1 start ;; *) echo "用法:$0 {start|stop|status|restart}" esac [root@localhost ~]# chmod +x myprog.sh

循环语句

for语句的结构

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

for 变量名 in 取值列表 do 命令序列 done

for 语句应运示例

示例1批量添加用户(1)用户名存放在users.txt文件中,每行一个(2)初始密码均设为123456(3)验证脚本

[root@localhost opt]# vim users.txt lisi wangwu zhangsan zhaoliu [root@localhost opt]# vim 3.sh #!/bin/bash TMP=$(cat /opt/users.txt) for USER in $TMP do useradd $USER echo "123456" | passwd --stdin $USER &> /dev/null done [root@localhost opt]# chmod +x 3.sh [root@localhost opt]# ./3.sh

[root@localhost ~]# vim ipadds.txt 192.168.217.130 192.168.178.2 192.168.217.129 192.168.312.23 [root@localhost ~]# vim ping.sh #1/bin/bash TMP=$(cat /root/ipadds.txt) for IP in $TMP do ping -c 3 -i 0.2 -M 3 $IP &> /dev/null if [ $? -eq 0 ] then echo "$IP is up" else echo "$IP id down" fi done [root@localhost ~]# chmod +x ping.sh [root@localhost ~]# ./ping.sh

while 语句的结构

重复测试某个条件,只要条件成立则反复执行

while 条件测试操作 do 命令序列 done

while语句应运示例

示例1批量添加用户(1)用户名称以stu开头,按照数字顺序进行编号(2)一共添加20个用户,即stu1、stu2、.........、stu20(3)初始密码均设为123456

[root@localhost ~]# vim stu.sh #!/bin/bash i=1 DP="stu" while [ $i -le 20 ] do useradd $DP$i echo "123456" | passwd --stdin $DP$i &>/dev/null let i++ done [root@localhost ~]# chmod +x stu.sh [root@localhost ~]# ./stu.sh

[root@localhost ~]# vim san.sh #!/bin/bash S=0 PR=$(expr $RANDOM % 1000) echo "商品实际价格为0~999,猜猜是多少?" while true do read -p "请输入你猜测的价格数目:" RIN let S++ if [ $RIN -eq $PR ] then echo "恭喜你才中了!" echo "你猜测的次数为$S" exit 0 elif [ $RIN -lt $PR ] then echo "你猜测的值太小了" else echo "你猜测的值太大了" fi done [root@localhost ~]# chmod +x san.sh [root@localhost ~]# ./san.sh

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:英创信息技术新CAN驱动接口调用方法及说明
下一篇:Linux系统中Shell编程之IF条件语句的实际使用
相关文章

 发表评论

暂时没有评论,来抢沙发吧~