一、test命令
1.条件测试操作
1.2文件测试
要使shell脚本程序具备一定的"智能",面临的第一个问题就是如何区分不同的情况以确定执行何种操作。例如,当磁盘使用率超过95%时,发送告警信息;当备份目录不存在时,能够自动创建;当源码编译程序时,若配置失败则不再继续安装等
shell环境根据命令执行后的返回状态值($?)来判断是否执行成功,当返回值为0时表示成功,否则(非0值)表示失败或异常。使用专门的测试工具—test命令,可以对特定条件进行测试,并根据返回值来判断条件是否成立(返回值为0表示条件成立)。
语法格式:
格式1 test 条件表达式
格式2〔条件表达式] #注意中括号和表达式中间需要隔一个空格
或
[[条件表达式]]
文件测试指的是根据给定的路径名称,判断对应的是文件还是目录,或者判断文件是否可读、可写、可执行等。文件测试的常见操作选项如下,使用时将测试对象放在操作选项之后即可。
-d:测试是否为目录( Directory) 。
-e:测试目录或文件是否存在(Exist) 。
-f:测试是否为文件(File ) 。
-r:测试当前用户是否有权限读取(Read) 。
-w:测试当前用户是否有权限写入( Write ) 。
-x:测试是否设置有可执行(Excute)权限。
-b:测试是否为设备文件。
-c:测试是否为字符设备文件。
-s:测试存在且文件大小为空。
-L:测试是否为链接文件。
执行条件测试操作以后,通过预定义变量 ? 可 以 获 得 测 试 命 令 的 返 回 状 态 值 , 从 而 判 断 该 条 件 是 否 成 立 。 例 如 , 执 行 以 下 操 作 可 测 试 目 录 / m e d i a / 是 否 存 在 , 如 果 返 回 值 ?可以获得测试命令的返回状态值,从而判断该条件是否成立。例如,执行以下操作可测试目录/media/是否存在,如果返回值 ?可以获得测试命令的返回状态值,从而判断该条件是否成立。例如,执行以下操作可测试目录/media/是否存在,如果返回值?为 0,表示存在此目录,否则表示不存在或者虽然存在但不是目录。
测试是否为目录
是否为文件
如果没有/kgc目录则创建
测试是否有luojunwen这个文件,结果显示无
测试是否有luojunwen这个目录有输出yes
二、常用的测试操作符
-eq:等于(Equal)
-ne:不等于(Not Equal)
-gt:大于(Greater Than)
-lt:小于(Lesser Than)
-le:小于或等于(Lesser or Equal)
-ge:大于或等于(Greater or Equal)
free -m:查看内存空间
用户小于等于5则