Shell脚本学习笔记5——if条件语句
1.条件测试语句能够让Shell脚本根据实际工作灵活调整工作内容,例如判断系统的状态后执行指定的工作,或创建指定数量的用户,批量修改用户密码,这些都可以让Shell脚本通过条件测试语句完成。
if条件语句
if条件语句分为单分支结构、双分支结构、多分支结构,复杂度逐级上升,但却可以让Shell脚本更加的灵活。
单分支结构:
由if、then、fi关键词组成,只在条件成立后执行。
单分支if语句:判断目录是否存在,若不存在则自动创建。
编写Shell脚本并写入下面的语句:
1
2
3
4
5
6
|
#!/bin/bash DIR= "/home/jacun" if [ ! -e $DIR ] then mkdir -p $DIR fi |
执行脚本:
1
|
sh DemoCreateFolder.sh |
查看该目录是否被创建:
1
|
ls -d /home/jacun |
双分支结构
由if、then、else、fi关键词组成,做条件成立或条件不成立的判断。
双分支if语句:判断指定主机能否ping通,根据返回结果分别给予提示或警告。
为了减少用户的等待时间,需要为ping命令追加-c参数代表发送数据包的个数,-i代表每0.2秒发送一个数据包,-W则为3秒即超时。而$1为用户输入的第一个参数(IP地址),$?为上一条命令的执行结果,判断是否等于0(即成功)。
1
2
3
4
5
6
7
8
|
#!/bin/bash ping -c 3 -i 0.2 -W 3 $1 &> /home/jacun/jacun if [ $? - eq 0 ] then echo "$1 is OK!" else echo "$1 is down" fi |
1
|
sh DemoPing.sh 192.168.20.47 |
检测主机IP地址,根据返回值判断是否OK:
判断主机出现网络故障:
多分支结构
由if、then、else、elif、fi关键词组成。
多分支if语句:
判断用户输入的分数在那个区间内,然后判定为优秀、合格或不及格:
read命令用于将用户的输入赋值给指定变量,格式为:(read -p [提示语句] 变量名)
使用read命令让用户为GRADE变量赋值,判断分数必须同时满足大于85且小于100才输出"优秀",判断分数必须同时满足大于70且小于84才输出"合格",其余的情况输出"不及格"。
创建并编辑DemoGrade.sh
1
|
vim DemoGrade.sh |
编辑内容:
1
2
3
4
5
6
7
8
|
#!/bin/bash read -p "请输入分数(0-100):" GRADE if [ $GRADE - ge 85 ] && [ $GRADE - le 100 ]; then echo "$GRADE 优秀" elif [ $GRADE - ge 70 ] && [ $GRADE - le 84 ]; then echo "$GRADE 合格" else echo "$GRADE 不及格" fi |
原文地址:https://www.cnblogs.com/young-dalong/p/15127373.html
- 【技术专栏】OpenVirteX体系结构之组件(一)
- 洞察 | 深圳数据分析师的职业前景如何?爬完拉勾数据给你分析 (附代码和过程)
- 【温故】金融数据挖掘之朴素贝叶斯
- 为你的网站加上SSL,可以使用HTTPS进行访问
- LeeCX - 开源后台管理系统简单介绍
- fastdfs 图片服务器 使用java端作为客户端上传图片
- Shiro系列(3) - What is shiro?
- 干货|用python抓取摩拜单车API数据并做可视化分析(源码)
- 干货|机器学习:Python实现聚类算法之K-Means
- 美团点餐—listview内部按钮点击事件
- C4C和CRM里获取当前登录用户分配的Organization Unit信息
- 使用Excel调用ABAP系统的函数
- 如何计算并测量ABAP及Java代码的环复杂度Cyclomatic complexity
- 漫谈版本控制系统
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 基于Ansible和Devops的一键测试环境部署实践
- STM32硬核DIY机械键盘|蓝牙USB双模|灯控
- R语言隐马尔可夫模型HMM识别不断变化的股票市场条件
- 看完这篇并发后,又能扯皮了?
- Twitter美国航空公司情绪数据集的监督或半监督ULMFit模型
- 一文帮你理解整个 SRE 运维体系!
- 拆解式解读如何用飞桨复现胶囊神经网络(Capsule Network)
- 我用飞桨Parakeet合成小姐姐声音帮我“读”论文
- 【5分钟玩转Lighthouse】搭建WordPress博客
- vue接入腾讯地图(一)【点击事件】
- Redis文件事件&时间事件处理机制
- Redis持久化策略
- Redis二进制安全的原理
- 面试必备 Vue 知识点
- 数据传输 | mysqldiff/mysqldbcompare 实现 DTLE 自动化测试