目录
一、条件测试
1.1 test 命令
test 命令用来 测试表达式是否成立(条件成立返回 0 ,不成立返回其他数值)。
test 命令 有两种形式:
-
格式:
test 条件表达式
-
格式二:
[ 条件表达式 ]
,方括号两边与条件表达式之间一定要用空格分隔,否则会执行失败。 -
检查最后所执行命令的状态的最简便方法是使用
$?
查看
1.2 文件测试
使用 test 命令进行 文件测试,可以用来判断 对应的是文件还是目录,或者判断是否有相应的权限等。
格式:[ 操作符 文件或目录 ] # 注意[ ]要有空格
常用的操作符 | 功能 |
---|---|
-d | 测试是否为目录(Directory) |
-e | 测试目录或文件是否存在(Exist) |
-f | 测试是否为文件(File) |
-r | 测试当前用户是否有权限读取(Read) |
-w | 测试当前用户是否有权限写入(Write) |
-x | 测试当前用户是否有权限执行(Excute) |
-L | 测试是否是软链接(符号链接)文件 |
1.3 整数值比较
用于比较两个整数值的大小。
$() 和 反撇号 是用来提取里面命令的执行结果。
格式:[ 整数变量1 操作符 整数变量2 ]
比较符 | 功能 | 符号 |
---|---|---|
-eq | 等于 | == |
-ne | 不等于 | != |
-gt | 大于 | /> |
-lt | 小于 | /< |
-ge | 大于等于 | ≥ |
-le | 小于等于 | ≤ |
实例:
1 . 如果当前登录系统的用户数量少于5人,进行输出提示。
2 . 判断主内存空闲是否小于1024M
free
命令显示系统使用和空闲的内存情况,-m 选项显示内存的单位为 M。Mem是存,swap 是交换分区内存。
先获取当前内存的值(主内存空闲是指:Mem 内存行的 free 列的值),交给一个变量,再用这个变量来比较。
表达式 && 语句1 || 语句2
相当于java中的三目运算符 ?:
1.4 字符串比较
- 字符串比较可用来测试 用户输入、系统环境等是否满足条件;
常用测试操作符:
=
:两个字符串内容相同!=
:内容不相同,!表示取反-z
:字符串内容为空
格式:
[ 字符串1 = / ==