if的条件表达式
常用的:
[ -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的条件表达式的更多相关文章
- [Django]模型提高部分--聚合(group by)和条件表达式+数据库函数
前言:本文以学习记录的形式发表出来,前段时间苦于照模型聚合中group by 找了很久,官方文章中没有很明确的说出group by,但在文档中有提到!!! 正文(最后编辑于2016-11-12): 聚 ...
- Scala:条件表达式的好处
条件表达式的好处之一是:让代码更简洁,例如在一个需要根据不同条件收集不同值的场景中,多数语言提供的代码如下: ; ) { tmp = xxx; } ) { tmp = yyy; } else { tm ...
- Shell 条件表达式汇总
条件表达式 文件表达式 if [ -f file ] 如果文件存在if [ -d ... ] 如果目录存在if [ -s file ] 如果文件存在且非空 if [ -r f ...
- shell之条件表达式
conditional expressions are used by the [[ compound command and the test and [ builtin commands. ari ...
- Python学习教程(learning Python)--3.3 分支语句的条件表达式详解
本节主要讨论分支语句的条件表达式问题. 在if或者if-else分支控制语句里由于都用到条件判断(表达式是真还是假),条件判断可以是一种关系运算也可以是布尔表达式. 本节将对if及if-else语句的 ...
- golang没有条件表达式?:
详见The Go Programming Language Specification中Expressions一章中未提及此表达式, 故其不支持. 再强调一次, GO不支持条件表达式 conditio ...
- thymeleaf条件表达式
条件表达式形式:condition, then and else <tr th:class="${row.even}? 'even' : 'odd'"> ... < ...
- SQL条件表达式
需求:数据表中如果满足某个条件,返回表中所有数据,否则不返回数据. 语法:CASE 表达式是一种通用的条件表达式,类似于其它语言中的 if/else 语句. CASE WHEN condition T ...
- c语言条件表达式误区1
#include <stdio.h> #include <stdlib.h> //综合1 和 2我们知道牢记条件表达式中常量写在左边的语法规则 以防因为疏忽造成难以查找的错误 ...
- 【C语言探索之旅】 第一部分第六课:条件表达式
内容简介 1.课程大纲 2.第一部分第六课:条件表达式 3.第一部分第七课预告:循环语句 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C语言编写三个游戏. ...
随机推荐
- CSS文本元素
一.属性 font-size:16px; 文字大小 Font-weight: 700 ; 值从100-900,文字粗细,不推荐使用font-weight:bold; Font-family:微软 ...
- PHP生成随机数;订单号唯一
//8-12位随机数 function makeRand($num=){ $strand = (; if(strlen($strand)<$num){ $strand = str_pad($st ...
- 洛谷 SP740 TRT - Treats for the Cows 题解
SP740 TRT - Treats for the Cows 题目描述 FJ has purchased N (1 <= N <= 2000) yummy treats for the ...
- 利用vue-meta管理头部标签
在 Vue SPA 应用中,如果想要修改HTML的头部标签,或许,你会在代码里,直接这么做 // 改下title document.title = 'what?' // 引入一段script let ...
- GoCN每日新闻(2019-10-20)
GoCN每日新闻(2019-10-20) slakc是如何构建共享频道的 https://slack.engineering/how-slack-built-shared-channels-8d42c ...
- git-中文乱码
Windows系统的Git默认是不支持中文显示的,需要进行一系列的设置才能避免乱码的出现,下面总结如何配置Git使其支持中文显示. Git bash options UTF-8编码配置 1.首先进入g ...
- Java 12 骚操作, String居然还能这样玩!
Java 13 都快要来了,12必须跟栈长学起! Java 13 即将发布,新特性必须抢先看! 栈长之前在Java技术栈微信公众号分享过<Java 11 已发布,String 还能这样玩!> ...
- CTF 文件上传
目录 一.客户端校验 1.禁用JS 2.抓包改包 二.服务端校验 1.MIME类型检测 2.后缀名黑名单校验 3.后缀名白名单校验 4.内容头校验 5.竞争上传 6.过滤<?或php 两种校验方 ...
- SpringBoot框架 之 Thymeleaf
目录 Thymeleaf 添加启动器 创建模板文件夹 基本使用 综合使用 Thymeleaf 介绍 SpringBoot并不推荐使用jsp Thymeleaf 是一个跟 Velocity.FreeMa ...
- how does SELECT TOP works when no order by is specified?
how does SELECT TOP works when no order by is specified? There is no guarantee which two rows you ge ...