shell脚本学习总结08--比较与测试
程序中流程控制是由比较语句和测试语句处理的
算数比较
[ $var -gt 20 ]
[ $var -gt 20 -a $var -lt 50 ] #使用逻辑与
[ $var -ne 20 -o $var -ne 50 ] #使用逻辑或
- -eq: 等于 equal
- -lt: 小于 less than
- -gt: 大于 greater then
- -ge: 大于或等于 greater equal
- -le: 小于或等于 less equal
- -ne : 不等于
字符串比较
使用字符串比较时,最好使用"[[ ]]",采用单中括号时容易产生错误,如下图所示:
aaarticlea/png;base64,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" alt="" />
要么就加上字符串都加上双引号
aaarticlea/png;base64,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" alt="" />
[[ $str1 = $str2 ]] #str1和str2包含的文本是一模一样的
[[ $str1 != $str2 ]] #str1和str2包含的文本是不一样的
[[ -z $str ]] #str为空,则返回真。
[[ -n $str ]] #str有值,not empty
注意[[]]不能够使用-a或者-o,而应该使用:
[[ $var1 = hello && $var2 = world ]
文件系统相关测试
[ -f filename ]
[ ! -f filename ] #不存在文件
使用逻辑运算符&&和||能够很容易的将多个条件组合起来:
[[ -n $str1 ]] && [[ -z $str2 ]]
[ -f file_name ] || { touch file_name;chmod 644 file_name;} #大括号里面接要执行的命令
shell脚本学习总结08--比较与测试的更多相关文章
- Shell脚本学习 - 运算符
继续shell脚本学习.上一篇是基本数据类型和语法的总结,这一篇是运算相关的操作. 运算符 bash不支持简单的数学计算,需要依赖其他命令实现. expr可以代为实现. # 表达式一般这么写 ` + ...
- Shell脚本学习指南笔记
Shell脚本学习指南 作者:Danbo 2015-8-3 脚本编程语言与编译型语言的差异 许多中型.大型的程序都是用编译型语言写的,例如:C.C+.Java等.这类程序只要从源代码(Source C ...
- 笔记——shell脚本学习指南
<shell脚本学习指南>机械工业出版 ISBN 987-7-111-25504-8 第2章 2.4 初级陷阱 1.当今的系统,对#!这一行的长度限制从63到1024个字符都有,尽量不要超 ...
- Shell 脚本学习资料搜集
Shell文档 ChinaUnix上大神“網中人”总结的Shell十三问,强烈推荐,这本书讲得比较精炼,而且都是一些Shell学习中容易把握不住的一些细节难点.每一问都写得非常精彩.ChinaUnix ...
- 学习笔记之Shell脚本学习指南 & sed与awk & 正则表达式
正则表达式_百度百科 http://baike.baidu.com/link?url=ybgDrN2WQQKN64_gu-diCqdeDqL8LQ-jiQ-ftzzPaNUa9CmgBRDNnyx50 ...
- 转 shell脚本学习指南
shell脚本学习指南 以下八点不敢说就能成为你shell脚本学习指南de全部,至少可以让你编写出可靠的shell脚本. 1. 指定bashshell 脚本的第一行,#!之后应该是什么?如果拿这个问题 ...
- shell脚本学习总结02--数组
bash同时支持普通数组个关联数组,普通数组只能使用整数作为数组的索引,关联数组可以使用字符串作为数组的索引. 数组的定义方法: 在单行中使用一列值定义一个数组 [root@new ~]# array ...
- shell脚本学习之6小时搞定(1)
shell脚本学习之6小时搞定(1) 简介 Shell是一种脚本语言,那么,就必须有解释器来执行这些脚本. Unix/Linux上常见的Shell脚本解释器有bash.sh.csh.ksh等,习惯上把 ...
- shell脚本学习—条件测试和循环语句
条件测试 1. 条件测试:test [ 命令test或[可以测试一个条件是否成立,如果测试结果为真,则该命令的Exit Status为0,如果测试结果为假, 则命令的Exit Status为1(注意与 ...
随机推荐
- CentOS 6.3下Samba服务器的安装与配置(转)
一.简介 Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,而SMB是Server Message Block的缩写,即为服务器消息块 ,SMB主要是作为Microsoft的 ...
- Android Launcher拖拽事件详解【android4.0--Launcher系列二】
AndroidICS4.0版本的launcher拖 拽的流程,基本和2.3的相似.就是比2.3写的封装的接口多了一些,比如删除类的写法就多了个类.等等.4.0的改变有一些,但是不是特别大.这个月一 直 ...
- J2ME项目移植到Android平台六大注意事项
很多J2ME项目如何移植到Android平台呢?Java虽然号称是跨平台应用但是目前的移植问题还是比较严重的,不知道未来Sun推出JavaFx或F3时会出现什么问题,如何从J2ME移植到Android ...
- C#:SqlServer操作的知识点
1.检查数据库连接的有效性 var client = new System.Net.Sockets.TcpClient(); var ar = client.BeginConnect(host, ...
- jquery 鼠标拖动排序Li或Table
1.前端页面 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="拖动排序Li或Ta ...
- poj 3691 DNA repair(AC自己主动机+dp)
DNA repair Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 5877 Accepted: 2760 Descri ...
- Java模拟公司置办货物系统(二)
採用MVC风格,将数据写入文件,模拟公司置办货物系统. A类表示普通员工,B类表示部门精力,C类表示採购部,D类表示资源管理部. 订单状态 1.表示申请状态 2.表示通过审批 3.表示未通过审批 4 ...
- /^(0|[1-9]\d*)([.]5)?$/ 在PHP正则中是什么意思 ?
^以什么开头 ()分组 |或的意思 \d 匹配任何数字字符串 [-] |[-]\d* 或1-9之间的数+任意数字零次或多次 开头 ()分组 []原子表 [.]5匹配. ? 零次或1次 总结: 必须以0 ...
- WannaCry病毒应急处置
WannaCry病毒应急处置 病毒介绍 近期勒索病毒WannaCry大面积爆发,并迅速蔓延.被感染的机器,病毒会自动加密系统中的图片.文档.音频.视频等几乎所有类型的文件,必须缴纳高额勒索金(人民 ...
- 自定义控件VS用户控件
自定义控件VS用户控件 2015-06-16 1 自定义控件与用户控件区别 WinForm中, 用户控件(User Control):继承自 UserControl,主要用于开发 Container ...