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,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具 ...
随机推荐
- bzoj 4504: K个串【大根堆+主席树】
像超级钢琴一样把五元组放进大根堆,每次取一个出来拆开,(d,l,r,p,v)表示右端点为d,左端点区间为(l,r),最大区间和值为v左端点在p上 关于怎么快速求区间和,用可持久化线段树维护(主席树?) ...
- elasticsearch接口开发(新)
此文在上一篇文章的基础上稍做了些许修改,主要在springboot整合ES后的包路径上,如下是新的目录结构 下面贴出代码 MyConfig.java package com.ylht.config; ...
- h5-20-文件操作-拖放文件
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- vue中的问题思考
1.为什么 data 要写成函数,而不允许写成对象? 思考:data是 Vue 实例上的一个属性.2. 对象是对于内存地址的引用.3. 函数有自己的作用域空间. 第一点无可厚非,data属性附着于 V ...
- JavaEE中一些缩写的含义
EJB:Enterprise JavaBeans (企业JavaBeans) XML:Extensible Markup Lauguage (可扩展标记语言) SOAP:Simple Object ...
- json字符串和字典类型的相互转换
在开发过程中,有时候需要将json字符串转为字典类型,反之亦然,通常采用.Net的开源类库Newtonsoft.Json进行序列化,这里我也是采用这个,不过我更喜欢写扩展方法方便在项目的调用. 首先新 ...
- oracle 函数、聚焦函数
oracle 常用的函数 以及 聚焦函数 --1,字符函数 --当没有表可以用个的时候oracle自带一个虚表dual -- || 表示连接符号 将字符串连接到一起 式显示 Lower(char):将 ...
- 【学习笔记】Base64编码解码原理及手动实现(C#)
1.[Base64编码原理]@叶落为重生 -base64的编码都是按字符串长度,以每3个8bit的字符为一组,-然后针对每组,首先获取每个字符的ASCII编码,-然后将ASCII编码转换成8bit的二 ...
- 《精通css》笔记
第2章 选择器,注释 1.要知道常用选择器(id选择器,类选择器,类型选择器,后代选择器,伪类选择器(文档结构之外)) 通用选择器(*{ }) 高级选择器(子选择器,相邻同胞选择器,属性选 ...
- 初学者可能不知道的vue技巧
前言 大家好,这里是@IT·平头哥联盟,我是首席甩锅官——老金,今天给大家分享的,一些日常中神秘而又简单的vue的实用小技巧,以及我在我司项目中实用vue的总结和坑,跟大家一起分享,希望能给其他攻城狮 ...