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语句

02 shell编程之条件语句的更多相关文章

  1. if语句 条件测试 shell编程之条件语句

    shell 编程之条件语句一.条件测试  ① test命令 测试  ② 文件测试  ③ 整数值比较  ④ 字符串比较  ⑤ 逻辑测试二.if语句的结构  单分支结构  双分支结构  多分支结构三.ca ...

  2. Shell编程之条件语句:if、case语句

    Shell编程之条件语句:if.case语句               一.条件测试                1)test命令测试                2)整数值比较         ...

  3. shell编程之条件语句

    目录: 一.条件测试 1.test命令测试 2.文件测试 3.字符串比较 4.逻辑测试 二.if语句 1.if单分支语句 2.if双分支语句 3.if多分支语句 三.case语句 case多分支语句 ...

  4. Linux Shell编程(1): 条件语句

    1.if—then#!/bin/bashif date              如果命令运行成功(退出码为0),则then部分的命令被执行then   echo "good"fi ...

  5. Linux - 简明Shell编程05 - 条件语句(Case)

    脚本地址 https://github.com/anliven/L-Shell/tree/master/Shell-Basics 示例脚本及注释 #!/bin/bash var=$1 # 将脚本的第一 ...

  6. 04 shell编程之循环语句

    Shell编程之循环语句 学习目标: 掌握for循环语句编程 掌握while循环语句编程 目录结构: For循环语句 l  读取不同的变量值,以逐个执行同一组命令 l  For语句结构 for 变量名 ...

  7. shell编程之循环语句for / while / until

    shell编程之循环语句与函数 一.条件测试 二.循环语句 ① for循环语句结构(遍历) 示例1 示例2 ② while循环语句结构(迭代) 示例1 示例2 ③ until 循环语句结构 示例1 一 ...

  8. Shell编程之循环语句与echo的用法

    Shell编程之循环语句与echo的用法 目录 Shell编程之循环语句与echo的用法 一.echo用法 1. echo常用选项 2. 常用的转义字符 3. 特殊符号%.#的用法 二.循环语句 1. ...

  9. 转 功能强大的shell:if条件语句

    原文 http://blog.zol.com.cn/2322/article_2321767.html 功能强大的shell:if条件语句 if语句测试条件,测试条件返回真(0)或假(1)后,可相应执 ...

随机推荐

  1. svn自动更新网站代码

    运行环境说明:svn的执行目录: /usr/bin/svnsvn版本库目录: /usr/local/nginx/html/svnrepos/coinhello (其中svnrepos是我各个项目版本库 ...

  2. SQLAlchemy的使用---查询的更多操作

    # 查询更多操作 from create_table import User, engine from sqlalchemy.orm import sessionmaker Session = ses ...

  3. angular怎么样注销事件

    angular怎么样注销事件 $scope.$on("$destroy", function() { //清除配置,不然scroll会重复请求 }) 在Controller中监听$ ...

  4. [工作积累点滴整理]虚拟化、云计算配置规划<一>

    目 录1. 服务器虚拟化的相关配置建议 11.1. 服务器的基本配置建议 11.1.1. CPU配置 11.1.2. 服务器内存配置 21.1.3. 物理网卡配置 21.1.4. 服务器磁盘配置 21 ...

  5. 一键完成SAP部署的秘密,想知道么?

    诸如 SAP 这样的企业级应用已成为普遍的流行趋势.考虑到不同行业和需求的特点,所选平台必须能够为不同层面用户和各种 IT 活动提供灵活的容量需求. 此时上云也许是种不错的选择,而想上云的企业,一方面 ...

  6. Selenium2学习(五)-- SeleniumBuilder辅助定位元素

    前言 福利来了,对于用火狐浏览器的小伙伴们,你还在为定位元素而烦恼嘛? 上古神器Selenium Builder来啦,哪里不会点哪里,妈妈再也不用担心我的定位元素问题啦!(但是也不是万能,基本上都能覆 ...

  7. June 14th 2017 Week 24th Wednesday

    Love looks not with the eyes, but with the mind. 爱,不在眼里,而在心中. Staring in her eyes and you will find ...

  8. Windows 系统 Unicode 文件名操作(新建、重命名、枚举、复制)全攻略

    常见的那些文件操作函数都不支持,于是为了达到目的,需要各种方法配合,应该是不如其他语言方便.我只是想看看Perl到底是否适合做这件事,于是折腾了一回. 文件的建立: 模块:Win32 Code: [全 ...

  9. 长大Tips

    队名:CW 队员: B20150304403 王香辉 B20150304408 李孟君 B20150304411 曾翡 B20150304414 吴海波 B20150304430 文淼 B201503 ...

  10. C语言 条件编译(if )

    #include <stdio.h> #define NUM -1 int main(int argc, const char * argv[]) { #if NUM > 0 pri ...