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,这个数字表示一个同学的分数,当你输入这个数字我们就要判断出来,这个同学的分数是什么样的级别,是优秀还是及格,或者不及格