第八章 Shell编程之条件语句

一、条件测试
1、测试命令
(1)test 条件表达式
(2)[条件表达式]
(3)$?:根据返回值判断前者是否成立
2、文件测试:根据指定路径名称,判断对应文件或目录以及读写执行状态等
(1)-d:是否为目录(Directory)
(2)-e:是否存在(exist)
(3)-f:是否为文件(file)
(4)-r:是否有读取权限(read)
(5)-w:是否有写入权限(write)
(6)-x:是否有执行权限(excute)
(7)示例:[ -d /etc ]或test -d /etc
(8)-nt:判断文件A是否比B新
(9)-ot:判断文件A是否比B旧
(10)-ef:判断两个文件是否为同一文件(是否指向同一个inode)
(11)示例:test A -nt B或[ A -nt B ]
3、整数值比较
(1)-eq:等于
(2)-ne:不等于
(3)-gt:大于
(4)-lt:小于
(5)-ge:大于等于
(6)-le:小于等于
(7)示例:[ a -eq b ]
4、字符串比较
(1)=:等于
(2)!=:不等于
(3)-z:是否为空
(4)示例:[ a = b ]、[ -z a ]
5、逻辑测试
(1)&&:逻辑与,只有当两边条件同时成立时才返回0
(2)||:逻辑或,当两边任意一边条件成立时就返回0
(3)!:逻辑否,当条件不成立时返回0

二、if语句
1、if语句的结构
(1)单分支结构
if 条件
then
      具体命令
fi
①示例

(2)双分支格式
if 条件
then
      具体命令
else
      具体命令
fi
①示例

(3)多分支格式
if 条件
then
      具体命令
elif 条件
then
      具体命令
else
      具体命令
fi
①示例

练习题
1、判断当前系统内核主、次版本,若大于2.4则输出相应版本号,否则提示“内核版本太低,无法继续”


2、判断系统中sysstat软件包的安装情况,如已经安装,则提示“已安装”并输出版本信息。否则提示“未安装,尝试自动安装”,并自动挂载光盘进行安装


3、根据IP地址查主机状态


4、实时监控本机内存和硬盘剩余空间,当内存剩余空间小于500M、根分区硬盘空间小于1000M时,发送报警邮件给root


5、检测本机当前用户是否是超级管理员,如果是,则使用yum安装vsftpd,不是则提示您非管理员(使用字符串比较)


6、提示用户输入3个数字,脚本根据数字大小依次排序输出


7、根据当前时间,返回问候语,可设置为开机启动,每次登陆提示如早上好!张三,现在时间为2019-7-3 09:01:01


8、判断文件或目录是否存在,如执行./filedir.sh /aaa.txt会判断aaa.txt是否为文件,是则提示是文件,否则提示没有该文件。如是目录,则显示该目录详细信息,否则提示没有该目录


9、提示用户输入年份后判断概念是否闰年(能被4整除且不能被100整除,或者能被400整除的年份)


10、从键盘读取论坛积分,判断用户等级:大于等于90是神功绝世,大于等于80小于90为登峰造极,大于等于70小于80为炉火纯青,大于等于60小于70为略有小成,小于60为初学乍练


11、判断用户输入的是Yes或NO

Linux网络服务与shell脚本——Shell编程之条件语句相关推荐

  1. linux 脚本编写 -eq,关于shell脚本基础编程第四篇

    shell脚本基础编程第四篇 本章主要内容:函数 函数 function: function 名称 { 命令 ; } 或 name () { 命令 ; } 定义 shell 函数. 创建一个以 NAM ...

  2. shell编程之条件语句(文件测试,test命令,字符串和逻辑测试,if单支语句,if双支语句,if多支语句,case命令,用if写跑步小实验)

    文章目录 shell编程之条件语句 条件测试 test命令 整数值测试 free -m 提供了更简洁的查看系统内存使用情况: 字符串和逻辑测试 字符串 逻辑测试 一元运算符,二元运算符和三元运算符 i ...

  3. Linux网络服务-Web Service之【apache的功能、安装、配置文件介绍以及实验实例】(三)...

    上两张博文: < Linux网络服务-Web Service之[HTTP协议简介](一) > <Linux网络服务-Web Service之[Apache-Prefork.Worke ...

  4. Linux网络服务_apache阿帕奇

    4.Linux网络服务_apache阿帕奇 配置环境 更改IP与网关 vim /etc/sysconfig/network-scripts/ifcfg-eth0 更改主机名 hostnamectl s ...

  5. Linux网络服务-Web Service之【HTTP协议简介】(一)

    一.什么是HTTP? 超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是互联网上应用最为广泛的一种网络协议.设计HTTP最初的目的是为了提供一种发布和接收 ...

  6. Linux网络服务基础

    Linux网络服务基础<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /& ...

  7. Linux网络服务_邮件服务器-Redhat Enterprise 5.9

    Linux网络服务_邮件服务器-Redhat Enterprise 5.9 案例环境: 邮件服务器:mail.tarena.com192.168.1.100 邮件域:@tarena.com 邮件账号: ...

  8. Linux网络服务之DNS(1)

    Linux网络服务之主从DNS 实验要求: 1.搭建主DNS服务器,www.zhy.com解析成192.168.1.11,zhy.com解析等同于www.zhy.com,bbs.zhy.com解析成1 ...

  9. Shell编程之条件语句(if语句,case分支语句)

    Shell编程之条件语句 一.条件测试操作 1.test命令 2.文件测试 3.整数值比较 4.字符串比较 5.逻辑测试 二.if语句 单分支结构 双分支结构 多分支结构 三.case分支语句 一.条 ...

最新文章

  1. 初学Hadoop之图解MapReduce与WordCount示例分析
  2. NumPy库入门教程:基础知识总结
  3. PDU (协议数据单元)
  4. AsyncHttpServer 异步回调,并发
  5. [zz]正则表达式使用详解
  6. BZOJ[1713][Usaco2007 China]The Bovine Accordion and Banjo Orchestra 音乐会 二维斜率优化
  7. opc服务器组态文件已写保护_「杰控软件」OPC代理服务,通过OPC方式采集远程OPC服务...
  8. NXP KW38开发杂记(一)MCUXpress 运行进入NMI_Handler
  9. java泛型和类型通配符,java – 泛型,类型参数和通配符
  10. Win10系统自带输入法怎么设置
  11. 绘制彩虹html代码,HTML5 Canvas 彩虹螺旋图生成器
  12. 如何在修改 gulpfile.js 文件后自动重启 gulp?
  13. 软件工程——进展记录
  14. [Python学习25] 关于函数更多的练习
  15. @SuppressLint(HandlerLeak),或Handler使用有警告;
  16. delphi 与 Excel数据交换
  17. 7.19作业 防火墙知识,调研总结,包括但不限于与原理,设备使用,厂商介绍,形成报告
  18. 852955-00-1,Cyclo(D-Trp-Tyr),大环化合物
  19. 透过爷爷的一生,浅析选择的重要性
  20. 研华电脑510上电自启_研华工控机BIOS设置通电自启动方法技巧

热门文章

  1. linux内核nomodeset,修复因显卡不支持而引起Ubuntu live USB无法启动的问题
  2. 在Parallels Desktop中安装Win7虚拟机
  3. Python3爬虫图片抓取
  4. Camera拍照录像保存位置信息
  5. 象棋人工智能算法的C++实现(二)
  6. c++ string/char* 字符编码转换 (utf8,chs,gbk...)
  7. 计算机固态的价格,ssd固态硬盘价格大全【详细介绍】
  8. 免费拥有个性化的头像 - Multiavatar
  9. 争做一流的高层管理者,如何管理好一个团队?(管理过程)
  10. 【C++】走进C++的世界