Shell编程之条件语句

学习目标:

掌握shell脚本条件测试

掌握if语句编程

目录结构:

条件测试

条件测试概述

l  对特定的条件进行判断,以决定如何执行操作

l  测试的方法

方法1:test 条件表达式

方法2:【条件表达式】

l  当条件成立时,测试语句的返回值为0,否则为其他数值

条件测试的分类

1、 文件测试

2、 整数测试

3、 字符串测试

4、 逻辑测试

文件测试

l  格式:【 操作符 文件或目录 】

l  常用的测试操作符

-d:测试是否为目录(directory)

-e:测试目录或文件是否存在(exist)

-f:测试是否为文件(file)

-r:测试当前用户是否可读(read)

-w:测试当前用户是否可写(write)

-x:测试当前用户是否可执行(excute)

实例:

[root@poll ~]# [ -d /etc ]

[root@poll ~]# echo $?

0

[root@poll ~]# [ -d /etc/profile ]

[root@poll ~]# echo $?

1

[root@poll ~]# [ -d /etc ]&&echo "yes"    //&&意思是前面执行成功载执行后面

Yes

整数测试

l  格式:[ 整数1 操作符 整数2 ]

l  常用的测试测试操作符

-eq:等于(equal)

-ne:不等于(not equal)

-gt:大于(greater than)

-lt:小于(lesser than)

-le:小于或等于(lesser or equal)

-ge:大于或等于(greater or equal)

实例:

[root@poll ~]# who |wc -l

3

[root@poll ~]# [ `who |wc -l` -gt 5 ] && echo too many

[root@poll ~]# [ `who |wc -l` -gt 2 ] && echo too many

too many

字符串测试

l  格式1:

[ 字符串1 = 字符串2 ]

[ 字符串1 != 字符串2 ]

l  格式2:

[ -z 字符串 ]

常用的测试操作符:

=:字符串内容相同

!=:字符串内容不同

-z:字符串内容为空

实例:

[root@poll ~]# echo $LANG

zh_CN.UTF-8

[root@poll ~]# [ $LANG!="en.US" ] && echo "Not en.US"

Not en.US

逻辑测试

l  格式1:

[ 表达式1 ] 操作符 [ 表达式2 ] …

命令1 操作符 命令2 …

l  常用的测试操作符

-a或&&:逻辑与,“而且”的意思,两个表达式都要执行成功

-o或||:逻辑或,“或者”的意思,有一个执行成功就行了

!:逻辑否

实例:

[root@poll ~]# [ -d /etc ] && [ -r /etc ] && echo "you can open it"

you can open it

[root@poll ~]# [ -f /etc ] || [ -d /home ] && echo ok

Ok

If语句

If单分支语句

l  If单分支语句结构

if 条件测试操作

then 命令序列

fi

if执行成功然后执行then。if没有执行成功,啥都不干

if双分支语句结构

if 条件测试操作

then 命令序列1

else 命令序列2

fi

if执行成功,然后执行then。If没有执行成功,执行else

实例:

[root@poll ~]# cat a.sh

#!/bin/bash

#This is my first shell-script

#2018-03-16

read -p "请输入你的性别:" one

if [ $one = 男 ]

then

echo "you are handsome"

else

echo "you are beautiful"

fi

[root@poll ~]# sh a.sh

请输入你的性别:男

you are handsome

[root@poll ~]# sh a.sh

请输入你的性别:女

you are beautiful

if多分支语句

if 条件测试操作1

then 命令序列1

elif 条件测试操作2

then 命令序列2

else 命令序列3

fi

条件测试操作1执行成功,执行命令序列1;失败则执行条件测试2,条件测试2执行成功则执行命令序列2,失败则执行命令序列3。

实例:

[root@poll ~]# vi b.sh

#!/bin/bash

#This is …

read -p " 请输入你的年龄:" one

if [ $one -le 18 ]

then echo "you are young"

elif [ $one -gt 18 ] && [ $one -le 60 ]

then echo "you are so happy"

else echo "you are old"

fi

[root@poll ~]# sh b.sh

请输入你的年龄:12

you are young

[root@poll ~]# sh b.sh

请输入你的年龄:19

you are so happy

接下来讲case语句

转载于:https://www.cnblogs.com/tzlsj/p/9150096.html

02 shell编程之条件语句相关推荐

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

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

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

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

  3. Linux网络服务与shell脚本——Shell编程之条件语句

    第八章 Shell编程之条件语句 一.条件测试 1.测试命令 (1)test 条件表达式 (2)[条件表达式] (3)$?:根据返回值判断前者是否成立 2.文件测试:根据指定路径名称,判断对应文件或目 ...

  4. 你说shell编程的条件语句太难,我说那是你没看过这篇博客。

    文章目录 一.条件测试操作 (一). 条件测试操作 1.test命令 (二).文件测试 1.文件测试基本格式 2.常见的测试操作符 (三).整数测试 1.整数值比较 2.常用的测试操作符 (四).字符 ...

  5. Shell编程之条件语句

    目录 条件测试 条件测试操作-1 条件测试操作-2 条件测试操作-3 条件测试操作-4 条件测试操作-5 条件测试操作-6 条件测试操作-7 if语句的结构 单分支结 双分支结构 case语句结构 条 ...

  6. Shell编程之条件语句(if单分支、双分支、多分支、case多分支)

    文章目录 1.条件测试操作 2.if语句的结构 1.单分支结构 2.双分支语句 3.多分支结构 4.case多分支语句 1.条件测试操作 test命令测试表达式是否成立,若成立返回0,否则返回其他数值 ...

  7. Shell编程之循环语句(详细讲解以及脚本案例)

    Shell编程之循环语句(详细讲解以及脚本案例) 文章目录 一.for语句的结构 (一).for语句应用实例 1.示例1--批量添加用户 2.示例2--使用根据IP地址检查主机状态 3.示例3--fo ...

  8. shell编程之循环语句

    shell编程之循环语句 文章目录 shell编程之循环语句 一.for循环语句 1. for循环语法结构 ㈠ 列表循环 2. 应用案例 二.while循环语句 1. while循环语法结构 2. 应 ...

  9. shell脚本编程之条件语句【二】(跟着小张一起走)

    这里写目录标题 一. 条件测试 1.1 test命令 1.2 文件测试 1.3 整数值比较 1.4 字符串比较 1.5 逻辑测试 二.if条件语句结构 2.1 if单分支结构 2.2 if双分支结构 ...

  10. shell编程-分支语句

    目标: 完成这一章,你将能够作以下事情: 描述条件分支语句中返回值的作用.  使用test命令来分析一个命令的返回值.  在shell程序中使用if和case结构. 1.返回值 shell变量&quo ...

最新文章

  1. 【创新培育项目】为什么要组队參加比赛?及如何寻找一个合适的选题?
  2. 揭秘罗永浩直播带货幕后之师
  3. 架构无小事:QQ碰微信 贴吧遇微博
  4. Velocity模板(VM)语言介绍
  5. python开发工具管理系统_Python之软件管理
  6. angular js实现开关效果
  7. 女程序员 一直从事着软件研发的工作
  8. vue ---- 组件综合案例(购物车案例)
  9. integer为null_走进 JDK 之 Integer
  10. PaaS安全:降低企业风险的四条规则
  11. R语言查看某个R包版本号
  12. SWMM建模与案例应用
  13. 用AI如何预测《权力的游戏》死亡名单?真是神了!
  14. [C++题目]:求和s=a+aa+aaa+…+aaa…a(n个a)
  15. 1800: 少水群多刷题
  16. 民航计算机初级职称有哪些,各系列专业职称资格分类一览表
  17. cpp-netlib笔记三-Cookie支持测试
  18. 虚拟化精华问答 | 为什么云计算需要虚拟化?
  19. 计算机保研面试准备之网络安全+软件工程
  20. 无线远程上下载PLC程序

热门文章

  1. 视频教程-计算机二级(VB)-计算机等级考试
  2. bootstrap 滚动 进度条_Bootstrap中的进度条
  3. android铃声代码,Android之来电铃声设置(示例代码)
  4. C语言入门 -- Simple Simon 简单的西蒙游戏(2021/1/7)
  5. C语言函数之可变参数原理:va_start、va_arg及va_end
  6. java调用百度地图的不同显示方式
  7. 定制Android开发者专属T恤
  8. C++Comb Sort梳排序的实现算法(附完整源码)
  9. java导航网站_java导航网站
  10. Win7显示器颜色不正常的原因及解决方法