Linux test命令
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命令的更多相关文章
- linux grep命令
linux grep命令1.作用Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expressio ...
- Linux常用命令(一)
Linux常用命令 1. pwd查看当前路径(Print Working Directory) [root@CentOS ~]# pwd/root 2. cd .. 返回上一级 .. 表示上一级 ...
- Linux下命令行安装weblogic10.3.6
Linux下命令行安装weblogic10.3.6 一.安装前准备工作: 1.创建用户useradd weblogic;创建用户成功linux系统会自动创建一个和用户名相同的分组,并将该用户分到改组中 ...
- Linux paste命令
Linux paste命令用于合并文件的列. paste指令会把每个文件以列对列的方式,一列列地加以合并. 语法 paste [-s][-d <间隔字符>][--help][--versi ...
- 20145222《信息安全系统设计基础》Linux常用命令汇总
学习Linux时常用命令汇总 通过Ctrl+f键可在该网页搜索到你想要的命令. Linux中命令格式为:command [options] [arguments] //中括号代表是可选的,即有些命令不 ...
- Linux sudo 命令的应用
.note-content { font-family: "Helvetica Neue", Arial, "Hiragino Sans GB", STHeit ...
- linux 基础命令与文件管理
Linux终端介绍 Shell提示符 Bash Shell基本语法 基本命令的使用:ls.pwd.cd 查看系统和BIOS硬件时间 Linux如何获得帮助 Linux关机命令:shutdow.in ...
- linux awk命令详解
linux awk命令详解 简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分 ...
- linux常用命令的介绍
本文主要介绍Linux常用命令工具,比如用户创建,删除,文件管理,常见的网络命令等 如何创建账号: 1. 创建用户 useradd -m username -m 表示会在/home 路径下添加创建用户 ...
- Linux查找命令:grep,awk,sed
grep grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具 ...
随机推荐
- python 迭代器 Iterator
一.可迭代对象定义 可以直接作用于for循环的数据类型有以下几种: 一类是集合数据类型,如list.tuple.dict.set.str.bytes.bytearray等: 一类是generator, ...
- spoj NSUBSTR - Substrings【SAM】
先求个SAM,然后再每个后缀的对应点上标记si[nw]=1,造好SAM之后用吧parent树建出来把si传上去,然后用si[u]更新f[max(u)],最后用j>i的[j]更新f[i] 因为每个 ...
- IT兄弟连 JavaWeb教程 请求转发案例
CheckServlet类与OutputServlet类之间为请求转发关系.在web.xml文件中,为CheckServlet映射的URL为"/check",为OutputServ ...
- javascript E5面向对象和 E6面向对象
javascript es6之前的面向对象方法: 一般使用构造函数来实现 function Person (name, age) { this.name = name; this.age = age; ...
- uni-app引入阿里iconfont
前言: 目前正在通过 UNI-APP平台开发移动应用,uni-app平台是去年年出才创建的一个新品台,因此资源相对比较匮乏,在此遇到一个问题,一直使用别人提供的iconfont,但总是不够用,为了解决 ...
- 如何通过Gitalk评论插件,5分钟为你的博客快速集成评论功能
欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 高级架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 个人网站: https://www.ex ...
- 给Clouderamanager集群里安装可视化分析利器工具Hue步骤(图文详解)
扩展博客 以下,是我在手动的CDH版本,安装Hue. CDH版本大数据集群下搭建Hue(hadoop-2.6.0-cdh5.5.4.gz + hue-3.9.0-cdh5.5.4.tar.gz)(博主 ...
- Python函数和面向对象题目
- UvaLive3942(Trie + dp)
查了半天数组越界的RE,才发现自己把ch数组放结构体里是过大的……放全局就A了. 类似区间的dp比较显然,只是用trie树做了优化,使得可以在trie树里一边走一边往上加dp值,不必枚举以前的每个位置 ...
- 模板——扩展欧几里得算法(求ax+by=gcd的解)
Bryce1010模板 /**** *扩展欧几里得算法 *返回d=gcd(a,b),和对应等式ax+by=d中的x,y */ long long extend_gcd(long long a,long ...