shell 脚本之判断语句 if 详解
使用 Linux 系统这么长时间,对 shell 脚本也算是比较熟悉。其实不管是搞开发,还是搞运维,shell 脚本都是必备的基本技能。这次抽时间好好总结一下 shell 方面的知识,综合的再学习一下,记录。这篇文章总结的是 shell 脚本的 if 语句的使用。
一、if 语句的基本语法
if [ 条件判断 ]; then
... ...
elif [ 条件判断 ]; then
... ...
else
... ...
fi
二、文件/目录的判断
关于文件或目录的相关判断方法:
[ -e file ] 判断文件是否存在
[ -f file ] 判断文件是否是普通文件
[ -d file ] 判断文件是否是目录文件
[ -b file ] 判断文件是否块设备文件
[ -c file ] 判断文件是否字符设备文件
[ -s file ] 判断文件是否是非空文件
[ -r file ] 判断文件是否可读
[ -w file ] 判断文件是否可写
[ -x file ] 判断文件是否可执行
三、数字比较判断
关于针对数字的判断,首先定义a=10, b=8
[root@vip ~]# a= b=
[ $a -eq $b ] 判断 a 是否等于 b
[ $a -ne $b ] 判断 a 是否不等 b
[ $a -gt $b ] 判断 a 是否大于 b
[ $a -ge $b ] 判断 a 是否大等 b
[ $a -lt $b ] 判断 a 是否小于 b
[ $a -le $b ] 判断 a 是否小等 b
四、字符串的判断和比较
关于针对字符串的判断比较,首先定义 str1=abc, str2=abd
[root@vip ~]# str1=abc; str2=abd [ -z str ] 判断 str 是否长度为0
[ -n str ] 判断 str 是否长度不为0
[ str1 == str2 ] 判断 str1 与 str2 是否相等
[ str1 != str2 ] 判断 str1 与 str2 是否不等
[ str1 \> str2 ] 判断 str1 是否大于 str2
[ str1 \< str2 ] 判断 str1 是否小于 str2
[[ str1 > str2 ]] 判断 str1 是否大于 str2
[[ str1 < str2 ]] 判断 str1 是否小于 str2
五、逻辑判断
[ $a -lt $b -a $str1 == $str2 ] a 大于 b, 而且 str1 与 str2 相等 (&&)
[ $a -lt $b -o $str1 == $str2 ] a 大于 b, 或者 str1 与 str2 相等 (||)
[[ $a -gt $b && $str1 == $str2 ]] a 大于 b, 而且 str1 与 str2 相等 (&&)
[[ $a -gt $b || $str1 == $str2 ]] a 大于 b, 或者 str1 与 str2 相等 (||)
[ $a -lt $b ] && [ $str1 == $str2 ] a 大于 b, 而且 str1 与 str2 相等 (&&)
[ $a -lt $b ] || [ $str1 == $str2 ] a 大于 b, 或者 str1 与 str2 相等 (||)
六、常用 if 实例
待更新。。。
shell 脚本之判断语句 if 详解的更多相关文章
- Shell脚本 /dev/null 2>&1详解
Shell脚本---- /dev/null 2>&1详解 1.可以将/dev/null看作"黑洞". 它非常等价于一个只写文件. 所有写入它的内容都会永远丢失. ...
- shell脚本if判断语句报错[: too many arguments的两种原因
shell脚本,if判断语句报错[: too many arguments 我遇到过两种情况: 1.第一中情况就是网上大家说的,字符串变量中可能存在空格,shell解析时将其认为是多个参数,再进行判断 ...
- Shell脚本———— /dev/null 2>&1详解
1.可以将/dev/null看作"黑洞". 它非常等价于一个只写文件. 所有写入它的内容都会永远丢失. 而尝试从它那儿读取内容则什么也读不到. 然而, /dev/null对命令行和 ...
- linux shell脚本学习xargs命令使用详解
作用是将参数列表转换成小块分段传递给其他命令,以避免参数列表过长的问题 xargs是给命令传递参数的一个过滤器,也是组合多个命令的一个工具.它把一个数据流分割为一些足够小的块,以方便过滤器和命令进行处 ...
- Shell脚本中判断输入变量或者参数是否为空的方法
shell判断一个变量是否为空方法总结 https://www.jb51.net/article/154835.htm 1.判断变量 复制代码代码如下: read -p "input a w ...
- Shell脚本中判断输入参数个数的方法投稿:junjie 字体:[增加 减小] 类型:转载
Shell脚本中判断输入参数个数的方法 投稿:junjie 字体:[增加 减小] 类型:转载 这篇文章主要介绍了Shell脚本中判断输入参数个数的方法,使用内置变量$#即可实现判断输入了多少个参数 ...
- shell脚本中判断上一个命令是否执行成功
shell脚本中判断上一个命令是否执行成功 shell中使用符号“$?”来显示上一条命令执行的返回值,如果为0则代表执行成功,其他表示失败.结合if-else语句实现判断上一个命令是否执行成功. 示例 ...
- [转]mysqldump备份还原和mysqldump导入导出语句大全详解
FROM : http://www.cnblogs.com/zeroone/archive/2010/05/11/1732834.html mysqldump备份还原和mysqldump导入导出语句大 ...
- gvoory脚本中关于HttpClient使用详解实例
一.gvoory脚本中关于HttpClient使用详解实例 HttpClient:是一个接口 首先需要先创建一个DefaultHttpClient的实例 HttpClient httpClient=n ...
随机推荐
- Docker之Compose服务编排
Compose是Docker的服务编排工具,主要用来构建基于Docker的复杂应用,Compose 通过一个配置文件来管理多个Docker容器,非常适合组合使用多个容器进行开发的场景. 说明:Comp ...
- TSQL 字符串函数:截断和查找
字符串截断函数是指:Stuff 和 SubString,字符串查找函数是:CharIndex 和 PatIndex 一,SubString 截取子串 最常用的字符串函数,用于截取特定长度的子串. SU ...
- PHP 面向对象编程和设计模式 (4/5) - 异常的定义、扩展及捕获
PHP高级程序设计 学习笔记 2014.06.12 异常经常被用来处理一些在程序正常执行中遇到的各种类型的错误.比如做数据库链接时,你就要处理数据库连接失败的情况.使用异常可以提高我们程序的容错特性, ...
- MVC5 网站开发之八 栏目功能 添加、修改和删除
本次实现栏目的浏览.添加.修改和删除. 栏目一共有三种类型. 常规栏目-可以添加子栏目,也可以添加内容模型.当不选择内容模型时,不能添加内容. 单页栏目-栏目只有一个页面,可以设置视图. 链接栏目-栏 ...
- 初步认识Node 之Express
通过本文,你会对Express有一个较为具体的了解. 起源 2009年6月26日,TJ Holowaychuk提交了Express的第一次commit,接下来在2010年1月2日,有660次co ...
- 多线程条件通行工具——CyclicBarrier
CyclicBarrier的作用是,线程进入等待后,需要达到一定数量的等待线程后,再一次性开放通行. CyclicBarrier(int, Runnable)构造方法,参数1为通行所需的线程数量,参数 ...
- 【NLP】基于统计学习方法角度谈谈CRF(四)
基于统计学习方法角度谈谈CRF 作者:白宁超 2016年8月2日13:59:46 [摘要]:条件随机场用于序列标注,数据分割等自然语言处理中,表现出很好的效果.在中文分词.中文人名识别和歧义消解等任务 ...
- .net程序部署(setupFactory)
vs 自带的安装打包 实在弱爆了,点都不好用.一直一直在寻觅一个靠谱点的打包工具.在网上寻寻觅觅 寻寻觅觅 功夫不负有心人,终于让我找到了.setupFactory 我用的是 8.0版本 . 首先要 ...
- jquery遍历选中checkbox的id
$("[name='chkAll']:[checked]").each(function () { alert($(this).attr("id")); })
- Lightbox改造——支持滚轮缩放
在做文章类型的web页时,经常会遇到要点开看大图的需求,LightBox2则是在众多产品中比较优秀的一款Jquery插件.配置就不细说了,今天我主要要分享的是:如何在点开大图后,可以通过鼠标滚轮来缩放 ...