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 在 Apache 或者系统级别阻止垃圾
如果一个垃圾发布机器人攻击你的 Confluence 站点,这些程序可能来自于同一个 IP 地址,或者是一个比较小范围的 IP 地址段.希望找到攻击者的 IP 地址,请参考 Apache access ...
- vue的单选框
- ActiveMQ消息的消费原理
消费端消费消息: 在 初识ActiveMQ 中我提到过,两种方法可以接收消息,一种是使用同步阻塞的ActiveMQMessageConsumer#receive方法.另一种是使用消息监听器Messag ...
- mysql中有多种存储引擎,每种引擎都有自己的特色
mysql中有多种存储引擎,每种引擎都有自己的特色. 用途: MyISAM:快读, Memory:内存数据, InnoDB:完整的事务支持 锁: MyISAM:全表锁定, Memory:全表锁定, I ...
- 拓展中国剩余定理(ex_crt)
一般来讲,crt(中国剩余定理)比较常见,而ex_crt(拓展中国剩余定理)不是很常用 但是noi 2018偏偏考了这么个诡异的东西... 所以这里写一个ex_crt模板 模型: 求一个x满足上述方程 ...
- logical_backup: expdp/impdp
Table of Contents 1. 注意事项 2. 前期准备 3. 常用参数及示例 4. 常用语句示例 5. 交互式命令 6. 技巧 6.1. 不生成文件直接导入目标数据库 6.2. 通过she ...
- Python函数之匿名函数
一:概述 匿名函数主要用来处理比较简单的逻辑,用一行显示,并将运算结果作为返回值返回 二:书写规则 函数名 = lambda 参数:返回值 参数可以有多个,多个参数使用逗号分隔 三 :例子 将func ...
- 步步为营-76-用户登录(Session+Cookie)
说明:cookie是保存在浏览器的.Session是存储在服务器的 1 同样UI页面还是web前端提供 1.1 首先,经过验证码校验:将系统产生的验证码放入到Session中,然后取Session值注 ...
- STL容器之优先队列
STL容器之优先队列 优先级队列,以前刷题的时候用的比较熟,现在竟然我只能记得它的关键字是priority_queue(太伤了).在一些定义了权重的地方这个数据结构是很有用的. 先回顾队列的定义:队列 ...
- PAT Basic 1073. 多选题常见计分法
题目内容 多选题常见计分法(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 批改多选题是比较麻烦的事情,有 ...