Shell学习之条件测试(四)
Shell学习之条件测试
目录
逻辑测试
文件测试
数值比较
字符串比较
逻辑测试
格式: [ 表达式 ] 操作符 [ 表达式2 ] …… 命令1 操作符 命令2 …… 常用的操作符 ( 注意:-a和-o放在[]里面用,&&和||放在[]外面用 ) -a 或 && 逻辑与 -o 或 || 逻辑或 ! 逻辑否
文件测试
文件测试 格式1: [ 操作符 文件或目录 ] 格式2:test 操作符 文件或目录 常用的测试操作符 -d :测试是否为目录( Directory ) -e :测试目录或文件是否存在(Exist) -f :测试是否为文件(File) -r :测试当前用户是否可读(read) -w:测试当前用户是否可写(write) -x :测试当前用户是否可执行(excute)
例子:备份Mysql数据库,业务代码没有完善
#/bin/bash
back_dir=/var/mysql_back if !test -d $back_dir;then
mkdir -p $back_dir
fi
echo "开始备份"
数值比较
格式1:[ 整数1 操作符 整数2 ] 格式2: test 整数1 操作符 整数2 常用的测试操作符 -eq : 等于 (Equal) -ne : 不等于 (Not Equal) -gt : 大于(Greater Than) -lt : 小于 (Lesser Than) -le : 小于或等于(Lesser or Equal) -ge : 大于或等于(Greater or Equal)
例子
#/bin/bash
if [ $UID -ne 0];then
echo "没有权限"
exit
fi
yum -y install httpd
字符串比较
格式1:[ 字符串1 = 字符串2 ] [ 字符串1 != 字符串2 ] 格式2:[ -z 字符串 ] 常用的测试操作符 = : 字符串内容相同 != : 字符串内容不同 -z : 字符串内容为空
例子
#/bin/bash
if [ $USER = "root"];then
yum -y install httpd
fi
echo "没有权限"
exit
所有表达式
( EXPRESSION )
EXPRESSION is true ! EXPRESSION
EXPRESSION is false EXPRESSION1 -a EXPRESSION2
both EXPRESSION1 and EXPRESSION2 are true EXPRESSION1 -o EXPRESSION2
either EXPRESSION1 or EXPRESSION2 is true -n STRING
the length of STRING is nonzero STRING equivalent to -n STRING -z STRING
the length of STRING is zero STRING1 = STRING2
the strings are equal STRING1 != STRING2
the strings are not equal INTEGER1 -eq INTEGER2
INTEGER1 is equal to INTEGER2 INTEGER1 -ge INTEGER2
INTEGER1 is greater than or equal to INTEGER2 INTEGER1 -gt INTEGER2
INTEGER1 is greater than INTEGER2 INTEGER1 -le INTEGER2
INTEGER1 is less than or equal to INTEGER2 INTEGER1 -lt INTEGER2
INTEGER1 is less than INTEGER2 INTEGER1 -ne INTEGER2
INTEGER1 is not equal to INTEGER2 FILE1 -ef FILE2
FILE1 and FILE2 have the same device and inode numbers FILE1 -nt FILE2
FILE1 is newer (modification date) than FILE2 FILE1 -ot FILE2
FILE1 is older than FILE2 -b FILE
FILE exists and is block special -c FILE
FILE exists and is character special -d FILE
FILE exists and is a directory -e FILE
FILE exists -f FILE
FILE exists and is a regular file -g FILE
FILE exists and is set-group-ID -G FILE
FILE exists and is owned by the effective group ID -h FILE
FILE exists and is a symbolic link (same as -L) -k FILE
FILE exists and has its sticky bit set -L FILE
FILE exists and is a symbolic link (same as -h) -O FILE
FILE exists and is owned by the effective user ID -p FILE
FILE exists and is a named pipe -r FILE
FILE exists and read permission is granted -s FILE
FILE exists and has a size greater than zero -S FILE
FILE exists and is a socket -t FD file descriptor FD is opened on a terminal -u FILE
FILE exists and its set-user-ID bit is set -w FILE
FILE exists and write permission is granted -x FILE
FILE exists and execute (or search) permission is granted
Shell学习之条件测试(四)的更多相关文章
- Shell学习(六)——条件判断总结
Shell学习(六)--条件判断总结 [1]https://www.cnblogs.com/zhw-626/p/8528001.html [2]https://www.cnblogs.com/yizh ...
- Shell脚本的条件测试与比较
Shell脚本的条件测试与比较 一.shell脚本的条件测试 通常,在bash的各种条件结构和流程控制结构中都要进行各种测试,然后根据测试结构执行不同的操作,有时也会与if等条件语句相结合,来完成测试 ...
- shell脚本之六:shell脚本的条件测试与比较
六.shell脚本的条件测试与比较 (一)条件表达式的常见语法 1.条件表达式6种写法(if,while) 语法1:test<测试表达式> 语法2:[ <测试表达式>] #中括 ...
- shell编程:条件测试与比较(六)
条件测试方法综述 test条件测试的简单语法及测试 范例6-1 测试文件(在test命令中使用-f选项:文件存在且为不同文件则表达式成立) [root@adminset ~]# test -f fil ...
- Shell脚本下条件测试(eq.ne.....)(转载)
转载:http://cxj632840815.blog.51cto.com/3511863/1168709 Shell编程中的条件测试 在Linux编程中经常会用到判断数值的大小,字符串是否为空这样或 ...
- Shell中的条件测试和循环语句
1.条件测试:test或[ 如果测试结果为真,则该命令的Exit Status为0,如果测试结果为假,则命令的Exit Status为0 运行结果: 带与.或.非的测试命令[ ! EXPR ] : E ...
- SHELL编程之条件测试
条件测试 (一)概念:对特定的条件进行判断,以决定如何执行操作,当条件成立时,测试语句的返回值为0,否则为其他数值,意思就是如果 echo $? 的值是0,那么条件成立.条件测试的分类:文件测试.整数 ...
- Shell学习笔记 - 条件判断式
1. 判断格式 1) test 参数 文件 例: test -e /root/install.log 2) [ 参数 文件 ] -- 推荐使用 例: [ -e /root/install.log ] ...
- linux shell 学习笔记--文件测试符
. 文件测试操作 ---------------- 返回true 如果... -e 文件存在 -a 文件存在 这个选项的效果与-e 相同.但是它已经被弃用了,并且不鼓励使用 -f file 是一个re ...
随机推荐
- 自定义你的 Confluence 6 站点
本部分对 Confluence 全站进行自定义的相关内容进行了说明.这部分只能是具有 Confluence 的管理员权限的用户才能进行操作 —— 系统管理员或者 Confluence 管理员. 有关对 ...
- Android开发实战一 百度SDK
一 申请百度API key 百度地图API:http://developer.baidu.com/map/ 百度地图开发者平台地址:http://developer.baidu.com/map/ .点 ...
- 如何编辑PDF文件,怎么使用PDF裁剪页面工具
在编辑PDF文件的时候,往往会有很多的小技巧可以使用,在编辑PDF文件的时候,怎么对文件的页面进行裁剪呢,不会的话,看看下面的文章吧,小编已经为大家整理好了哦. 1.打开运行PDF编辑器,在编辑器中打 ...
- cf1144G 将串分解成单调递增和递减子串(贪心)
这算哪门子dp.. 具体做法就是贪心,建立两个vector存递增序列递减序列,操作过程中a可以合法地匀一个给b 就是判断第i个数放在递增序列里还是放在递减序列里,需要根据后面的数来进行决策 #incl ...
- php url函数
1.base64_encode 与 base64_decode base64_encode(string) 表示使用 MIME base64 对数据进行编码 base64_decode(string) ...
- Oracle unusable index 与unvisible index
1 可见性 索引的可见性(visibility)指的是该索引是否对CBO优化器可见,即CBO优化器在生成执行计划的时候是否考虑该索引,可以看作是索引的一个属性.如果一个索引可见性属性为:invisib ...
- 该问题是需要导包!!!需要pom中添加依赖The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application
<!-- https://mvnrepository.com/artifact/org.apache.taglibs/taglibs-standard-impl --><depend ...
- 混合编译.c/.cpp与.cu文件
混合编译.c/.cpp与.cu文件 项目中用到cuda编程,写了kernel函数,需要nvcc编译器来编译..c/.cpp的文件,假定用gcc编译. 如何混合编译它们,整体思路是:.cu文件编译出的东 ...
- python with语句中的变量有作用域吗?
一直以为python中的with语句中的变量,只在with语句块中起作用.不然为什么要缩进一个级别呢? 呵呵,然而并没有为with语句内的变量创建新的作用域. 举例: # test.py with o ...
- WCF 寄宿Windows以及控制台启动
一:添加windows服务 二:修改XXXInstaller1的StartType=Automatic,修改ProcessInstaller1的Account=LocalSystem 三:在progr ...