常用的:
[ -a FILE ] 如果 FILE 存在则为真。
[ -d FILE ] 如果 FILE 存在且是一个目录则返回为真。
[ -e FILE ] 如果 指定的文件或目录存在时返回为真。
[ -f FILE ] 如果 FILE 存在且是一个普通文件则返回为真。
[ -r FILE ] 如果 FILE 存在且是可读的则返回为真。
[ -w FILE ] 如果 FILE 存在且是可写的则返回为真。(一个目录为了它的内容被访问必然是可执行的)
[ -x FILE ] 如果 FILE 存在且是可执行的则返回为真。

条件表达式 意义
1.文件类检测,例如[ -e /tmp/a.log ]。如非特别说明,则所有文件类操作都会追踪到软链接的源文件。
-e file 文件是否存在(exist)
-f file 文件是否存在且为普通文件(file)
-d file 文件是否存在且为目录(directory)
-b file 文件是否存在且为块设备block device
-c file 文件是否存在且为字符设备character device
-S file 文件是否存在且为套接字文件Socket
-p file 文件是否存在且为命名管道文件FIFO(pipe)
-L file 文件是否存在且是一个链接文件(Link)
2. 文件属性检测,如test -r /tmp/a.log。如非特别说明,则所有文件类操作都会追踪到软链接的源文件。
-r file 文件是否存在且当前用户可读
-w file 文件是否存在且当前用户可写
-x file 文件是否存在且当前用户可执行
-u file 文件是否存在且设置了SUID
-g file 文件是否存在且设置了SGID
-k file 文件是否存在且设置了sbit(sticky bit)
-s file 文件是否存在且大小大于0字节,即用于检测文件是否为非空白文件
-N file 文件是否存在,且自上次read后是否被modify
3. 两个文件之间的比较,如:test file1 -nt file2
file1 -nt file2 (newer than)判断file1是否比file2新
file1 -ot file2 (older than)判断file1是否比file2旧
file1 -ef file2 (equal file)判断file2与file2是否为同一文件,可用在判断hard link的判定上。主要意义在判定,两个文件是否均指向同一个分区上的同一个inode
4. 两个整数之间的判定,支持正负数,但不支持小数。例如test n1 -eq n2
int1 -eq int2 两数值相等(equal)
int1 -ne int2 两数值不等(not equal)
int1 -gt int2 n1大于n2(greater than)
int1 -lt int2 n1小于n2(less than)
int1 -ge int2 n1大于等于n2(greater than or equal)
int1 -le int2 n1小于等于n2(less than or equal)
5. 判定字符串
-z string (zero)判定字符串是否为空?若string为空字符串,则为true
-n string 判定字符串是否非空?若string为空字符串,则false。注:-n可省略
string1 = string2 string1 == string2 string1和string2是否相同。相同则返回true。"=="和"="等价,但"="可移植性更好
str1 != str2 str1是否不等于str2,若不等,则返回true
str1 > str2 str1字母顺序是否大于str2,若大于,则返回true
str1 < str2 str1字母顺序是否小于str2,若小于,则返回true
6.逻辑运算符,例如:test -r filename -a -x filename
-a或&& (and)两表达式同时为true时才为true。"-a"只能在test或[]中使用,&&只能在[[]]中使用
-o或|| (or)两表达式任何一个true则为true。"-o"只能在test或[]中使用,||只能在[[]]中使用
[ ! EXPR ] 对表达式取反
( ) 用于改变表达式的优先级,为了防止被shell解析,应该加上反斜线转义\(\)
[ ] || [ ] 用OR来合并两个条件
[ ] && [ ] 用AND来合并两个条件

忘记参考的哪儿了,请见谅

if的条件表达式的更多相关文章

  1. [Django]模型提高部分--聚合(group by)和条件表达式+数据库函数

    前言:本文以学习记录的形式发表出来,前段时间苦于照模型聚合中group by 找了很久,官方文章中没有很明确的说出group by,但在文档中有提到!!! 正文(最后编辑于2016-11-12): 聚 ...

  2. Scala:条件表达式的好处

    条件表达式的好处之一是:让代码更简洁,例如在一个需要根据不同条件收集不同值的场景中,多数语言提供的代码如下: ; ) { tmp = xxx; } ) { tmp = yyy; } else { tm ...

  3. Shell 条件表达式汇总

    条件表达式 文件表达式 if [ -f  file ]    如果文件存在if [ -d ...   ]    如果目录存在if [ -s file  ]    如果文件存在且非空 if [ -r f ...

  4. shell之条件表达式

    conditional expressions are used by the [[ compound command and the test and [ builtin commands. ari ...

  5. Python学习教程(learning Python)--3.3 分支语句的条件表达式详解

    本节主要讨论分支语句的条件表达式问题. 在if或者if-else分支控制语句里由于都用到条件判断(表达式是真还是假),条件判断可以是一种关系运算也可以是布尔表达式. 本节将对if及if-else语句的 ...

  6. golang没有条件表达式?:

    详见The Go Programming Language Specification中Expressions一章中未提及此表达式, 故其不支持. 再强调一次, GO不支持条件表达式 conditio ...

  7. thymeleaf条件表达式

    条件表达式形式:condition, then and else <tr th:class="${row.even}? 'even' : 'odd'"> ... < ...

  8. SQL条件表达式

    需求:数据表中如果满足某个条件,返回表中所有数据,否则不返回数据. 语法:CASE 表达式是一种通用的条件表达式,类似于其它语言中的 if/else 语句. CASE WHEN condition T ...

  9. c语言条件表达式误区1

    #include <stdio.h> #include <stdlib.h> //综合1 和 2我们知道牢记条件表达式中常量写在左边的语法规则 以防因为疏忽造成难以查找的错误 ...

  10. 【C语言探索之旅】 第一部分第六课:条件表达式

    内容简介 1.课程大纲 2.第一部分第六课:条件表达式 3.第一部分第七课预告:循环语句 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C语言编写三个游戏. ...

随机推荐

  1. openjdk k8s port-forward 连接容器jmx服务

    jmx 是java 自带的,如果需要使用我们只需要添加对应的配置即可,以下演示docker 集成jmx 使用kompose 生成k8s 的部署文件,使用port-forward 进行连接,所以java ...

  2. 【POJ1321】棋盘问题

    本题传动门 本题知识点:深度优先搜索 + 枚举 + 回溯 题意是要求我们把棋子放在棋盘的'#'上,但不能把两枚棋子放在同一列或者同一行上,问摆好这k枚棋子有多少种情况. 我们可以一行一行地找,当在某一 ...

  3. SqlServer 数据库同步的两种方式 (发布、订阅),主从数据库之间的同步

    最近在琢磨主从数据库之间的同步,公司正好也需要,在园子里找了一下,看到这篇博文比较详细,比较简单,本人亲自按步骤来过,现在分享给大家. 在这里要提醒大家的是(为了更好的理解,以下是本人自己理解,如有错 ...

  4. Win10系统下安装ubuntu16.04双系统-常见问题解答

    Win10系统下安装ubuntu16.04双系统-常见问题解答 1. 安装ubuntu16.04.2系统 磁盘分区形式有两种:GPT和MBR,关系到设置引导项.在win10下压缩出500GB空间给ub ...

  5. SSH框架整合1

    ======================web.xml======================= <?xml version="1.0" encoding=" ...

  6. Can not add Newtonsoft.Json.Linq.JValue to Newtonsoft.Json.Linq.JObject.

    https://blog.csdn.net/zhouyingge1104/article/details/83307637 C#项目中使用NewtonSoft.json,报错提示: Can not a ...

  7. 《电子计算机机房设计规范》GB50174-93

    <电子计算机机房设计规范>GB50174-2008 http://gf.1190119.com/article-17886.htm 中华人民共和国国家标准 电子计算机机房设计规范 GB 5 ...

  8. html页面自适应宽度

    html页面实现响应式的方式有很多,本篇介绍懒人必备一招见效的方法. 在head标签中加入 <meta name="viewport" content="width ...

  9. App installation failed (A valid provisioning profile for this executable was not found)

    真机调试build success ,App installation failed (A valid provisioning profile for this executable was not ...

  10. LeetCode_409. Longest Palindrome

    409. Longest Palindrome Easy Given a string which consists of lowercase or uppercase letters, find t ...