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(注意与 ...
随机推荐
- 在一个SQL Server表中一行的多个列找出最大值
有时候我们需要从多个相同的列里(这些列的数据类型相同)找出最大的那个值,并显示 这里给出一个例子 IF (OBJECT_ID('tempdb..##TestTable') IS NOT NULL) D ...
- php 关于日期的一些计算
1.strtotime基本使用 date_default_timezone_set('PRC'); //设置中国时区 echo "今天:", date("Y-m-d&qu ...
- mybatis的#和$的差别
在项目中假设使用mybatis保存形如"1,2,3"这种字符串.你须要使用"#"号取值.假设使用$符号会报错, 假设是查询形如"id in (1,2, ...
- Android Studio 使用感受 错误解决
刚到公司不久,公司叫我用Android studio软件,曾经一直在用的是eclipse ADT.突然接触到的新名词让我有点适应只是来. 好吧,既然是公司要求,肯定有它的道理.就从网上下载了它的安装包 ...
- netty内存泄漏
关于netty本身内存泄漏的资料,在此记录一下:https://blog.csdn.net/hannuotayouxi/article/details/78827499
- 关于love2d教程的更新
实在抱歉,每周工作六天,一天13小时以上,周日想休息一下,love2d的估计一个月一篇都很难做到了. 三个月后公司的项目应该做完了,那时应该有时间了. love2d估计快发布0.9了,改动应该不是很大 ...
- mysql索引学习
索引用于快速找出在某列中有一特定值的行. 如果不使用索引,MySQL必须从第一条记录开始读完整个表,直到找出相关的行. 表越大,查询数据所花费的时间越多. 如果表中查询的列有一个索引,MySQL能快速 ...
- PLSQL 配置连接ORACLE数据库
http://blog.csdn.net/leather0906/article/details/6456095 PLSQL配置登录用户信息 http://www.2cto.com/database/ ...
- 深入分析 iBATIS 框架之系统架构与映射原理
iBATIS 框架主要的类层次结构 总体来说 iBATIS 的系统结构还是比较简单的,它主要完成两件事情: 根据 JDBC 规范建立与数据库的连接: 通过反射打通 Java 对象与数据库参数交互之间相 ...
- 使用 AWK 來做垂直数字相加
原文链接 數字垂直加總 檔案內容 (num.txt) 123 加總: cat num.txt | awk '{sum += $1} END {print sum}' 輸出: 6 加總 Apache a ...