文章目录
- test命令的用法
- 数值比较
- 字符串比较
- 文件比较
- 数值测试
- 比较变量的值和数字的大小,比较变量的值和变量的值的大小
- 方法一
- 方法二(不常用)
- test命令中不能使用浮点数
- 字符串的比较
- 判断当前登录用户是否为root(等于和不等于比较)
- 判断两个字的字符串的大小(大于小于比较)
- 判断字符串长度是否为0(是否为0比较)
- 字符串
- 判断目录是否存在(-d)
- 判断文件是否存在(-e)
- 判断文件是否存在并且是一个普通文件(-f)
- 判断文件是否可读(-r)
- 如果文件是否存在并且非空(-s)
- 如果文件存在且可写为真(-w)
- 测试文件是否可执行(-x)
- 判断文件是否存在并且属于当前用户所有(-O)
- 判断文件是否存在并且默认组与当前用户的相同(-G)
- 判断文件的创建时间的早晚(新旧)(-nt|-ot)
- 复合条件测试
- if-then的高级特性
test命令的用法
Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符串和文件三个方面的测试。
数值比较
可以用在数字和变量上
字符串比较
文件比较
数值测试
比较变量的值和数字的大小,比较变量的值和变量的值的大小
方法一
方法二(不常用)
test命令中不能使用浮点数
字符串的比较
小知识:
echo $USER 输出当前系统的正在登录的用户
判断当前登录用户是否为root(等于和不等于比较)
(1)
(2)
(3)
判断两个字的字符串的大小(大于小于比较)
错误写法,不转义大于号时,shell会将<识别为输出重定向,它会创建hockey文件。因为系统会执行重定向(if后面)的语句,所以退出状态为0,判断条件为真,所以会执行then后面的语句。
正确写法应该转义大于号大于小于号必须转义,否则shell会将大于号看做输出重定向,而把字符串看作文件名。
判断字符串长度是否为0(是否为0比较)
字符串
小知识:(输出当前用户的家目录)
判断目录是否存在(-d)
判断文件是否存在(-e)
判断文件是否存在并且是一个普通文件(-f)
判断文件是否可读(-r)
tail filename 为输出filename的最后10行内容
如果文件是否存在并且非空(-s)
当在文件中追加数据时
如果文件存在且可写为真(-w)
测试此文件 需要切换至普通用户
测试文件是否可执行(-x)
判断文件是否存在并且属于当前用户所有(-O)
判断文件是否存在并且默认组与当前用户的相同(-G)
判断文件的创建时间的早晚(新旧)(-nt|-ot)
复合条件测试
if-then的高级特性
双尖括号(())
方括号—>有针对字符串比较高级的特性—>通配功能