码迷,mamicode.com
首页 > 系统相关 > 详细

shell脚本中的逻辑判断、文件目录属性判断、 if特殊用法、case判断

时间:2018-09-17 16:12:26      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:sha   roo   多个   一个   term   strong   空格   ext   目录   

shell脚本中的逻辑判断

技术分享图片

shell脚本中很多都是逻辑判断,判断某个数值,判断某一个文件,或者某个目录,最后真对判断的某个结果再去做一些操作,在shll脚本中到处都是逻辑判断,如果没有判断就没有办法去做一些操作,不然只能敲命令了,

shell中逻辑判断的语法

  • 最常见的语法 :if 条件 ; then 语句; fi 他的格式比较特殊if和fi是相对的,正好对应的,then是if怎么样然后怎么样,这个语法读起来是如果怎么样然后怎么样

技术分享图片

如果a的值大于3软后怎么样

[root@100xuni1 ~]# a=5
[root@100xuni1 ~]# if [ $a -gt 3 ]; then echo ok; fi

技术分享图片

把上图写成shll脚本

技术分享图片

技术分享图片

  • if 条件; then 语句; else 语句; fis是满足条件怎么样,不满足又怎么样

a=5,如果a的值大于3,然后echo ok,如果不大于3就echo nook

技术分享图片

技术分享图片

  • if …; then … ;elif …; then …; else …; fi a=5如果a大于1,然后echo大于1,在大于1的基础上然后小于6,然后echo小于6并且大于1,如果这两个条件都不满足就nook

技术分享图片

技术分享图片

  • 逻辑判断表达式:if [ $a -gt $b ]; if [ $a -lt 5 ]; if [ $b -eq 10 ]等 -gt (>); -lt(<); -ge(>=); -le(<=);-eq(==); -ne(!=) 注意到处都是空格

大于用-gt 小于用-lt 等于-eq 不等于-nq
条件可以写成多个中间用双&的符号,或者用||符号

文件目录属性判断

技术分享图片

  • 在shll中通常跟文件,目录去打交道,所以说对文件和目录的判断非常的重要,
    我想判断一个文件是否存在,和大小,是不是空是不是可写,在shll脚本中都是可以做到的

[ -f file ]判断是否是普通文件,且存在

技术分享图片
技术分享图片

技术分享图片

[ -d file ] 判断是否是目录,且存在

技术分享图片

技术分享图片

[ -e file ] 判断文件或目录是否存在

技术分享图片

技术分享图片

[ -r file ] 判断文件是否可读

技术分享图片

技术分享图片

[ -w file ] 判断文件是否可写

技术分享图片

技术分享图片

[ -x file ] 判断文件是否可执行

技术分享图片

技术分享图片

if特殊用法

技术分享图片

if [ -z "$a" ]??这个表示当变量a的值是否为空

技术分享图片

有的时候想的不是太完美,万一删除这个文件,就会报错,这个文件没有看下图报错,

技术分享图片

判断下$n有没有数值,有数值的时候再去做判断。

技术分享图片

技术分享图片

技术分享图片

技术分享图片

case判断

**在shell中还有一种逻辑判断叫做case,这个语句比if这些还复杂一些,

技术分享图片

写个脚本试一试case的作用,这个脚本的目的是让一个用户输入一个数字然后我们用这个脚本去判断数字的范围,比如让你输入0到100,这个数字表示一个同学的分数,当你输入这个数字我们就要判断出来,这个同学的分数是什么样的级别,是优秀还是及格,或者不及格

技术分享图片

技术分享图片

技术分享图片

shell脚本中的逻辑判断、文件目录属性判断、 if特殊用法、case判断

标签:sha   roo   多个   一个   term   strong   空格   ext   目录   

原文地址:http://blog.51cto.com/8043410/2176161

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!