02 shell编程之条件语句
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编程之条件语句的更多相关文章
- if语句 条件测试 shell编程之条件语句
shell 编程之条件语句一.条件测试 ① test命令 测试 ② 文件测试 ③ 整数值比较 ④ 字符串比较 ⑤ 逻辑测试二.if语句的结构 单分支结构 双分支结构 多分支结构三.ca ...
- Shell编程之条件语句:if、case语句
Shell编程之条件语句:if.case语句 一.条件测试 1)test命令测试 2)整数值比较 ...
- shell编程之条件语句
目录: 一.条件测试 1.test命令测试 2.文件测试 3.字符串比较 4.逻辑测试 二.if语句 1.if单分支语句 2.if双分支语句 3.if多分支语句 三.case语句 case多分支语句 ...
- Linux Shell编程(1): 条件语句
1.if—then#!/bin/bashif date 如果命令运行成功(退出码为0),则then部分的命令被执行then echo "good"fi ...
- Linux - 简明Shell编程05 - 条件语句(Case)
脚本地址 https://github.com/anliven/L-Shell/tree/master/Shell-Basics 示例脚本及注释 #!/bin/bash var=$1 # 将脚本的第一 ...
- 04 shell编程之循环语句
Shell编程之循环语句 学习目标: 掌握for循环语句编程 掌握while循环语句编程 目录结构: For循环语句 l 读取不同的变量值,以逐个执行同一组命令 l For语句结构 for 变量名 ...
- shell编程之循环语句for / while / until
shell编程之循环语句与函数 一.条件测试 二.循环语句 ① for循环语句结构(遍历) 示例1 示例2 ② while循环语句结构(迭代) 示例1 示例2 ③ until 循环语句结构 示例1 一 ...
- Shell编程之循环语句与echo的用法
Shell编程之循环语句与echo的用法 目录 Shell编程之循环语句与echo的用法 一.echo用法 1. echo常用选项 2. 常用的转义字符 3. 特殊符号%.#的用法 二.循环语句 1. ...
- 转 功能强大的shell:if条件语句
原文 http://blog.zol.com.cn/2322/article_2321767.html 功能强大的shell:if条件语句 if语句测试条件,测试条件返回真(0)或假(1)后,可相应执 ...
随机推荐
- 最新机动车行驶证模板PSD可编辑分层文件下载
机动车行驶证PSD模板下载地址: http://www.qijieworld.com/thread-1834752-1-1.html 模板为psd格式,内容可编辑修改,需使用 Photoshop CS ...
- 私网IP访问Internet
公网.内网是两种Internet的接入方式. 内网接入方式:上网的计算机得到的IP地址是Internet上的保留地址,保留地址有3种形式: A类地址:10.0.0.0~10.255.255.255 B ...
- 《ArcGIS Runtime SDK for Android开发笔记》——(10)、ArcGIS Runtime SDK支持的空间数据类型
1.前言 移动端的数据来源非常重要,它决定了移动端功能的实现.早期的ArcGIS Android API中,主要以接入在线的数据源为主,因此主要实现在线的地图浏览.查询和路径分析.地理处理等从操作:在 ...
- matlab练习程序(Hilbert图像置乱)
正好刚写了Hibert生成曲线,不如再加一篇应用的程序. 关于Hilbert图像置乱,我在网上搜的应用领域主要集中在数字水印和图像加密上,而这两个领域我都没怎么接触过. 大部分的图像置乱都是如下图的置 ...
- 人多qiu是好
小组第一次冲刺 团队任务描述: 在确定完分组,并对于敏捷开发做了相应的了解之后,我们团队开始了第一次的冲刺.对于我们团队的第一次的Scrum冲刺,我们团队开展了团队会议.首先,我们明确了我们的目标,对 ...
- 纠结的一天 —— 由base64编解码与加号、空格引起
2014年3月14日,星期五, 23点22分 忙碌.焦头烂额.充实而又幸福的一天! 写在篇头的话: 许多时候,别人分享的经验(成功或失败),个中滋味,听者很难真正体会,直到自己遇到的那一瞬间,才会泪如 ...
- [转]Ubuntu桌面入门指南
Ubuntu桌面入门指南 http://wiki.ubuntu.org.cn/Ubuntu%E6%A1%8C%E9%9D%A2%E5%85%A5%E9%97%A8%E6%8C%87%E5%8D%97
- http中COOKIE和SESSION有什么区别?(转知乎)
作者:知乎用户链接:https://www.zhihu.com/question/19786827/answer/28752144来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...
- HDU 4757 Tree(可持续化字典树,lca)
题意:询问树上结点x到结点y路上上的权值异或z的最大值. 任意结点权值 ≤ 2^16,可以想到用字典树. 但是因为是询问某条路径上的字典树,将字典树可持续化,字典树上的结点保存在这条路径上的二进制数. ...
- Windows安装时的几个命令(摘录)
Windows无法安装到这个磁盘.选中的磁盘采用GPT分区形式. 1.在系统提示无法安装的那一步,按住“shift+f10”,呼出“cmd”命令符. 2.输入:diskpart,回车.进入diskpa ...