test命令

长格式的例子:

test "$A" == "$B" && echo "Strings are equal"

test “$A” -eq “$B” && echo "Integers are equal"

两个 == 是表示两个字符串是否完全相同的意思

而-eq是两个数字是否相等的意思。

简写格式的例子:

[ "$A" == "$B" ] && echo "Strings are equal"

[ "$A" -eq "$B" ] && echo "Integers are equal

-v 用来检测一个变量是否被设置过值,若设置过则$?返回0,没设置过值返回1.

数值测试:

 –gt //是否大于

 -ge //是否大于等于

-eq //是否等于

-ne //是否不等于

-lt //是否小于

-le //是否小于等于

这些数值测试可以是整数或负数,甚至算数表达式来比较。但不支持小数点。

test有一个专用的命令中括号

左中括号[ 是一个命令,空格加右中括号是它的参数

具体如下:

# [ A ==A ]

# echo $?

# 0

也就是[ A ==A ] 等于 test "$A" == "$A".

左右中括号与后面的参数之间必须有空格.

字符串测试

字符串测试:注意: 此表达式一般用于[[ ]]中;扩展的正则表达式

== 是否等于 示例: [[ a == b ]]中, a == b 与中括号之间都有空格.

> ascii码是否大于ascii码

< 是否小于

!= 是否不等于

=~ 左侧字符串是否能够被右侧的PATTERN所匹配 即 左侧字符串是否包含右侧的,包含为真,不包含为假.

注意:用于字符串比较时的用到的操作数都应该使用引号

-z "STRING“ 字符串是否为空,空为真,不空为假,举例

# A=123

# [ -z $A ]

# echo $?

# 1

-z是当变量有值的时候为假,没有被赋值的时候为真.

-n "STRING“ 字符串是否不空,不空为真,空为假,举例

# A=123

# [ -z $A ]

# echo $?

# 0

-n是当变量有值的时候为真,没有被赋值的时候为假.

存在性测试

-a FILE:同-e FILE:

文件存在性测试,存在为真,否则为假

# [ -e /etc/passwd ]等于test -e /etc/passwda 等于test -a /etc/passwda

# echo $?

# 0

存在性及类别测试

-b FILE://是否存在且为块设备文件

-c FILE://是否存在且为字符设备文件

-d FILE://是否存在且为目录文件

-f FILE://是否存在且为普通文件

-h FILE 或 -L FILE://存在且为符号链接文件

-p FILE://是否存在且为命名管道文件

-S FILE:是否存在且为套接字文件

权限测试

文件权限测试:

-r FILE://是否存在且可读

-w FILE: //是否存在且可写

-x FILE: //是否存在且可执行

[ -r /app/passwd -o -w /app/passwd ]  //判断/app/passwd文件是否存在,并拥有读或写的权限. 不能写为 -rw

[ -r /app/passwd -a -w /app/passwd ]  //判断/app/passwd文件是否存在,并拥有读和写的权限. 不能写为 -rw

文件特殊权限测试:

-u FILE://是否存在且拥有suid权限

-g FILE://是否存在且拥有sgid权限

-k FILE://是否存在且拥有sticky权限

文件大小测试:

-s FILE: //是否存在且非空

-t fd: fd //文件描述符是否在某终端已经打开

-N FILE://文件自从上一次被读取之后是否被修改过

-O FILE://当前有效用户是否为文件属主

-G FILE://当前有效用户是否为文件属组

双目测试:

FILE1 -ef FILE2: //FILE1是否是FILE2的硬链接,主要看是否为同一个inode号。

FILE1 -nt FILE2: //FILE1是否新于FILE2(mtime)

FILE1 -ot FILE2: //FILE1是否旧于FILE2

多条件判断.并且,或者,非..

第一种方式:

COMMAND1 && COMMAND2 并且 &&等于 -a

COMMAND1 || COMMAND2 或者 ||等于 -o

! COMMAND 非

如:

[[ -r FILE ]] && [[ -w FILE ]] 等于 [ -r /app/passwd -a -w /app/passwd ]

[[ -r FILE ]] || [[ -w FILE ]] 等于 [ -r /app/passwd -o -w /app/passwd ]

第二种方式:

条件1 -a 条件2 并且

条件1 -o 条件2 或者

! EXPRESSION

必须使用测试命令进行,即test或[]

Linux test命令的更多相关文章

  1. linux grep命令

    linux grep命令1.作用Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expressio ...

  2. Linux常用命令(一)

    Linux常用命令 1. pwd查看当前路径(Print Working Directory)    [root@CentOS ~]# pwd/root 2. cd .. 返回上一级 .. 表示上一级 ...

  3. Linux下命令行安装weblogic10.3.6

    Linux下命令行安装weblogic10.3.6 一.安装前准备工作: 1.创建用户useradd weblogic;创建用户成功linux系统会自动创建一个和用户名相同的分组,并将该用户分到改组中 ...

  4. Linux paste命令

    Linux paste命令用于合并文件的列. paste指令会把每个文件以列对列的方式,一列列地加以合并. 语法 paste [-s][-d <间隔字符>][--help][--versi ...

  5. 20145222《信息安全系统设计基础》Linux常用命令汇总

    学习Linux时常用命令汇总 通过Ctrl+f键可在该网页搜索到你想要的命令. Linux中命令格式为:command [options] [arguments] //中括号代表是可选的,即有些命令不 ...

  6. Linux sudo 命令的应用

    .note-content { font-family: "Helvetica Neue", Arial, "Hiragino Sans GB", STHeit ...

  7. linux 基础命令与文件管理

      Linux终端介绍 Shell提示符 Bash Shell基本语法 基本命令的使用:ls.pwd.cd 查看系统和BIOS硬件时间 Linux如何获得帮助 Linux关机命令:shutdow.in ...

  8. linux awk命令详解

    linux awk命令详解 简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分 ...

  9. linux常用命令的介绍

    本文主要介绍Linux常用命令工具,比如用户创建,删除,文件管理,常见的网络命令等 如何创建账号: 1. 创建用户 useradd -m username -m 表示会在/home 路径下添加创建用户 ...

  10. Linux查找命令:grep,awk,sed

    grep grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具 ...

随机推荐

  1. python 类属性和实例属性、方法 访问权限问题

    class Animal: cls_attr = 'cls_attr' _cls_attr = '_cls_attr' __cls_attr = '__cls_attr' def __init__(s ...

  2. Nginx(四) nginx+consul+upasync 在ubnutu18带桌面系统 实现动态负载均衡

    1.1 什么是动态负载均衡 传统的负载均衡,如果Upstream参数发生变化,每次都需要重新加载nginx.conf文件,因此扩展性不是很高,所以我们可以采用动态负载均衡,实现Upstream可配置化 ...

  3. 鸟哥私房菜基础篇:Linux 档案与目录管理习题

    猫宁!!! 参考链接:http://linux.vbird.org/linux_basic/0220filemanager.php 鸟哥是为中国信息技术发展做出巨大贡献的人. 1-什么是绝对路径与相对 ...

  4. 51NOD 1134 最长上升子序列

    给出长度为N的数组,找出这个数组的最长递增子序列.(递增子序列是指,子序列的元素是递增的) 例如:5 1 6 8 2 4 5 10,最长递增子序列是1 2 4 5 10.   输入 第1行:1个数N, ...

  5. Luogu P3694 邦邦的大合唱站队 【状压dp】By cellur925

    题目传送门 最开始学状压的时候...学长就讲的是这个题.当时对于刚好像明白互不侵犯和炮兵阵地的我来说好像在听天书.......因为我当时心里想,这又不是什么棋盘,咋状压啊?!后来发现这样的状压多了去了 ...

  6. POJ3417(树上差分)

    会卡vector. ; int n, m, Ans; ], to[maxn * ], tot; int vis[maxn], f[maxn]; int d[maxn], sum[maxn]; vect ...

  7. Educational Codeforces Round 24 A

    There are n students who have taken part in an olympiad. Now it's time to award the students. Some o ...

  8. linux软件的安装。使用rpm、yum或wget下载软件

    介绍 在linux中安装软件一般有一下几种方式: a.通过rpm包安装 b.通过yum在线安装(联网) c.weget url 在线下载软件(只负责下载,不安装) 1.通过rpm包来进行软件的安装和卸 ...

  9. forward和sendRedirect的区别

    部分内容转自:http://blog.csdn.net/zhouysh/article/details/380364和http://blog.csdn.net/frank_jay/article/de ...

  10. Execution of 'source /usr/hdp/current/oozie-server/conf/oozie--env.sh: oozie admin -oozie http://nssa-sensor3:11000/oozie -status' returned 255.解决办法(图文详解)

    不多说,直接上干货! 问题详情 解决办法 Copy/Paste oozie.services property tag set from oozie-default.xml to oozie-site ...