Linux shell流程控制
单分支的if语句
例子
1、使用单分支的if条件语句来判断/home/huanyu/shell/zz文件能否存在,若存在就结束条件判断和整个Shell脚本,反之则去创立这个目录
#!/bin/bash# 单分支IF语句DIR="/home/huanyu/shell/zz"if [ ! -e $DIR ]then mkdir -p $DIRfi
双分支if语句
例子
1、使用双分支的if条件语句来验证某台主机能否在线,而后根据返回值的结果,要么显示主机在线信息,要么显示主机不在线信息
#!/bin/bash# 用双分支结构判断一个IP能否在线ping -c 3 -i 0.2 -W 3 $1 &> /home/huanyu/shell/nullif [ $? -eq 0 ]then echo "Host $1 is on-line."else echo "Host $1 is off-line."fi
- 测试执行
if多分支结构
例子
1、使用多分支的if条件语句来判断客户输入的分数在哪个成绩区间内,而后输出如Excellent、Pass、Fail等提醒信息
#!/bin/bash# 多分支if语句进行分数评价# 在Linux系统中,read是用来读取客户输入信息的命令,能够把接收到的客户输入信息赋值给后面的指定变量,-p参数用于向客户显示肯定的提醒信息。read -p "Enter your score (0-100):" GRADE if [ $GRADE -ge 85 ] && [ $GRADE -le 100 ]then echo "$GRADE is Excellent"elif [ $GRADE -ge 70 ] && [ $GRADE -le 84 ]then echo "$GRADE is Pass"elif [ $GRADE -ge 0 ] && [ $GRADE -le 69 ]then echo "$GRADE is Fail"else echo "Error:$GRADE is invalid."fi
- 测试执行
for循环
例子
1、使用for循环语句从列表文件中读取多个客户名,而后为其逐一创立客户账户并设置密码
- 先准备客户名称列表
- 编写shell脚本
#!/bin/bash# 通过for循环批量创立客户read -p "Enter the Users Password:" PASSWDfor UNAME in `cat users.txt`do id $UNAME &> /home/huanyu/shell/null // 查看客户信息 if [ $? -eq 0 ] then echo "Already exists" else useradd $UNAME &> /home/huanyu/shell/null //增加客户操作 echo "$PASSWD" | passwd --stdin $UNAME &> /home/huanyu/shell/null // 为客户设置密码 if [ $? -eq 0 ] then echo "$UNAME , Create success" else echo "$UNAME , Create failure" fi fidone
- 测试执行
- 普通客户是无法创立客户的
- 注:Ubuntu下不支持 –stdin 指令
- 用root客户执行脚本,尽管上面的不支持,但是也创立成功了
2、从文本中自动读取主机列表,而后自动一一测试这些主机能否在线
- 准备IP列表
- 编写脚本
#!/bin/bash# 用for循环检测IP列表能否在线for IP in `cat ~/shell/ipadds.txt`do ping -c 3 -i 0.2 -W 3 $IP >> ~/shell/null if [ $? -eq 0 ] then echo "$IP is on-line." else echo "$IP is off-line." fidone
- 测试执行
while 循环
例子
1、编写一个用来猜测数值大小的脚本
#!/bin/bash# 用while循环做一个猜价格游戏PRICE=$(expr $RANDOM % 1000) // 随机生成一个数,并把它赋给PRICETIMES=0 //用来计算猜测的次数echo "商品实际价格在0-999之间,猜猜看是多少?"while truedoread -p "请输入你猜测的价格数:" INTlet TIMES++if [ $INT -eq $PRICE ]then echo "恭喜你猜对了,实际价格是:$PRICE" echo "你总共猜了 $TIMES 次。" exit 0elif [ $INT -gt $PRICE ]then echo "太高了"else echo "太低了"fidone
- 测试执行
case 语句
例子
1、提醒客户输入一个字符并将其赋值给变量KEY,而后根据变量KEY的值向客户显示其值是字母、数字还是其余字符
#!/bin/bash# 通过case语句判断输入字符的类型read -p "请输入一个字符,并按Enter键确认:" KEYcase "$KEY" in [a-z]|[A-Z]) echo "你输入的是字母。" ;; [0-9]) echo "你输入的是数字。" ;; *) echo "你输入的是 空格、功能键或者是其余控制字符。"esac
- 测试执行
说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » Linux shell流程控制
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » Linux shell流程控制