Linux笔记之shell脚本3:测试语句
来源:互联网 发布:游戏试玩网站源码 编辑:程序博客网 时间:2024/06/06 02:15
测试语句用来判定表达式是否成立,成立返回0,失败返回非0
细分可分为:文件测试、逻辑测试、整数值比较、字符串比较
PART 1:文件测试
格式[ 操作符 文件或测试 ]
其中操作符有:
-d是否为目录
-e 是否存在
-f 是否为文件
-r 当前用户是否有读取权限
-w 当前用户是否有写入权限
-x 当前用户是否有执行权限
#判断/etc是否为目录,返回0,成立
[root@okaka Desktop]# [ -d /etc/ ]
[root@okaka Desktop]# echo $?
0
#其他对号入座看看,可以动手试一试
[root@okaka Desktop]# [ -d test.sh ]
[root@okaka Desktop]# echo $?
1
[root@okaka Desktop]# [ -f test.sh ]
[root@okaka Desktop]# echo $?
0
[root@okaka Desktop]# [ -e test.sh ]
[root@okaka Desktop]# echo $?
0
[root@okaka Desktop]# [ -r test.sh ]
[root@okaka Desktop]# echo $?
0
[root@okaka Desktop]# [ -x test.sh ]
[root@okaka Desktop]# echo $?
0
[root@okaka Desktop]# [ -w test.sh ]
[root@okaka Desktop]# echo $?
0
PART 2:逻辑测试
就是最熟悉的与或非(&& || !)啦
#判断user是否不为root用户(当然不是root用户,所以返回0)
[root@okaka Desktop]# su user
[user@okaka Desktop]$ [ $USER != root ]
[user@okaka Desktop]$ echo $?
0
[user@okaka Desktop]$ [ $USER != root ]
[user@okaka Desktop]$ echo $?
0
#也可以一句搞定:
[user@okaka Desktop]$ [ $USER != root ] && echo "user"
user
user
所以:
[root@okaka Desktop]# [ -e test.sh ]
[root@okaka Desktop]# echo $?
等价于
[root@okaka Desktop]# echo $?
等价于
[root@okaka Desktop]# [ -e test.sh ] && echo 0 || echo 1
因此逻辑测试在一定程度上可以代替之后要讲的条件语句
PART 3:整数值比较
操作符有6个:
-eq 是否等于
-ne 是否不等于
-gt 是否大于
-lt 是否小于
-le 是否小于等于
-ge 是否大于等于
#10是否小于9是则输出0,否则输出1
[user@okaka Desktop]$ [ 10 -lt 9 ]
[user@okaka Desktop]$ echo $?
1
[user@okaka Desktop]$ echo $?
1
#当然也可以这样做
[user@okaka Desktop]$ [ 10 -lt 9 ] && echo 0 || echo 1
1
#还可以比较一下内存:
[root@okaka ~]# FreeMem=`free -m|grep cache:|awk '{print$3}'`[root@okaka ~]# echo $FreeMem
708
[root@okaka ~]# [ $FreeMem -lt 1024 ] && echo "have no memory"
have no memory
have no memory
PART 4:字符串比较
操作符有3个:
= 比较字符串内容是否相同
!= 比较字符串内容是否不同
-z 字符串内容是否为空
[root@okaka ~]# [ -z $HaHa ]
[root@okaka ~]# echo $?
0
[root@okaka ~]# echo $?
0
[root@okaka ~]# echo $LANG
en_US.UTF-8
[root@okaka ~]# [ $LANG != "en.US" ] && echo "Not en.US"
Not en.US
en_US.UTF-8
[root@okaka ~]# [ $LANG != "en.US" ] && echo "Not en.US"
Not en.US
阅读全文
0 0
- Linux笔记之shell脚本3:测试语句
- Linux笔记之shell脚本4:条件语句
- linux shell脚本编程之测试判断
- LINUX shell 脚本语句
- Linux笔记之shell脚本1:初识shell脚本
- Linux笔记之shell脚本2:初次写shell脚本
- Linux Shell脚本攻略笔记3之以文件为名
- Linux Shell笔记之脚本控制
- Linux之Shell脚本学习笔记
- LINUX SHELL脚本笔记
- Linux shell脚本笔记
- Linux笔记 shell脚本
- linux shell 编程笔记 - shell脚本之变量
- shell脚本之注释,数组,控制语句,函数【shell脚本的学习笔记二】
- shell脚本之if语句
- shell脚本之case语句
- shell脚本之for语句
- Linux-shell脚本-if语句/case语句
- C#连接操作 MySQL 数据库实例(使用官方驱动)
- jQ+jQ UI制作的一个简单的二级可多选穿梭框
- caffe画loss accuracy曲线
- 第五章 编码/加密
- 数组转换list,map,set
- Linux笔记之shell脚本3:测试语句
- 左连接、右连接、内连接
- 实体类转换
- 欢迎使用CSDN-markdown编辑器
- 设计模式第一天——面向对象的基础
- Spring Boot 集成JSP
- GPS onLocationChanged Demo
- Kafka深度解析
- 尽量少的去操作DOM结构