常见的文件测试操作符:

-f 文件,英文file:文件存在且为普通文件则真,即测试表达式成立

-d 文件,英文directory:文件存在且为目录文件则真,即测试表达式成立

-s 文件,英文size:文件存在且文件大小不为0则真,即测试表达式成立。

-e文件,英文exist:文件存在则真,即测试表达式成立。只要有文件就行,要区别-f

-r 文件,英文read:文件存在且可读则真,即测试表达式成立。

-w文件,英文write:文件存在且可写则真,即测试表达式成立。

-x文件,英文executable:文件存在且可执行则真,即测试表达式成立。

-L文件,英文link:文件存在且为链接文件则真,即测试表达式成立。

f1 -nt f2 ,英文newer than:文件f1比f2新则真,即测试表达式成立。根据文件修改时间计算

f1 -ot f2,英文older than:文件f1比f2旧则真,即测试表达式成立。根据文件修改时间计算

特别说明,这些操作符对于[[]]、[]、test几乎是通用的,更多的操作符请man test查询。

文件测试表达式举例:

普通文件测试表达式举例:

测试普通文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[root@linux-node1 ~]# touch oldboy
[root@linux-node1 ~]# ll oldboy
-rw-r--r-- 1 root root 0 Sep 10 16:00 oldboy
测试是否为文件
[root@linux-node1 ~]# [ -f oldboy ]&&echo 1||echo 0
1
测试是否为目录
[root@linux-node1 ~]# [ -d oldboy ]&&echo 1||echo 0  
0
测试可读
[root@linux-node1 ~]# [ -r oldboy ]&&echo 1||echo 0 
1
测试可写
[root@linux-node1 ~]# [ -w oldboy ]&&echo 1||echo 0 
1
测试可执行
[root@linux-node1 ~]# [ -e oldboy ]&&echo 1||echo 0 
1

1
2
3
[root@linux-node1 ~]# mkdir oldgirl
[root@linux-node1 ~]# [ -f oldgirl ]&&echo 1||echo 0
0

1
2
[root@linux-node1 ~]# [ -e oldgirl ]&&echo 1||echo 0
1

测试目录:

1
2
[root@linux-node1 ~]# [ -d oldgirl ]&&echo 1||echo 0 
1

定义变量测试:变量最好加双引号,要不有时候不准确。

1
2
3
4
5
6
7
8
[root@linux-node1 ~]# file1=/etc/services
[root@linux-node1 ~]# file2=/etc/rc.local
[root@linux-node1 ~]# [ -f $file1 ]&&echo 1||echo 0
1
[root@linux-node1 ~]# [ -d $file1 ]&&echo 1||echo 0 
0
[root@linux-node1 ~]# [ -d "$file1" ]&&echo 1||echo 0
0

传参测试:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
[root@linux-node1 ~]# cat t11.sh 
[ $1 -eq 3 ]&&{
  echo 1
  echo 1
  echo 1
}
[root@linux-node1 ~]# sh t11.sh 1
[root@linux-node1 ~]# sh t11.sh 
t11.sh: line 1: [: -eq: unary operator expected
[root@linux-node1 ~]# sh t11.sh 2
[root@linux-node1 ~]# sh t11.sh 3
1
1
1
[root@linux-node1 ~]# cat t11.sh 
[ $1 -eq 3 ]||{
  echo 1
  echo 1
  echo 1
}
[root@linux-node1 ~]# sh t11.sh 1
1
1
1
[root@linux-node1 ~]# sh t11.sh 12
1
1
1
[root@linux-node1 ~]# sh t11.sh 3

本文转自sandshell博客51CTO博客,原文链接http://blog.51cto.com/sandshell/1964128如需转载请自行联系原作者

sandshell

Shell的条件表达式知识初步介绍实践相关推荐

  1. shell中的条件表达式

    条件表达式返回的结果都为布尔型 真为1,假为0 条件测试的表达式 [expression] [[expression]] test expression 这三种条件表达式的效果是一样的 比较符 整数比 ...

  2. 【Linux学习笔记④】——Shell程序设计【变量 输入与输出 条件表达式 判断语句 循环语句 Shell函数】

    ⌛️ 文章目录 一.Shell 概述 二.Shell 脚本的定义与执行 2.1 Shell 脚本的定义 2.2 Shell 脚本的执行 三.Shell 变量 3.1 用户自定义变量 3.2 环境变量 ...

  3. C语言if条件表达式只能是,小白基础知识必备|| 条件表达式

    原标题:小白基础知识必备|| 条件表达式 if-else 条件表达式 简单来说,条件表达式使我们可以测试变量. 打个比方,我们可以这样说: "假如变量的值等于 7,就执行这样那样的操作.&q ...

  4. 游戏AI之初步介绍(0)

    目录 游戏AI是什么? 游戏AI和理论AI 智能的假象 (更新)游戏AI和机器学习 介绍一些游戏AI 4X游戏AI <求生之路>系列 角色扮演/沙盒游戏中的NPC 游戏AI 需要学些什么? ...

  5. sybase不支持的条件表达式_包教包会!7段代码带你玩转Python条件语句(附代码)...

    来源:大数据 本文约5200字,建议阅读10分钟. 本文介绍了Python条件语句常用的7段代码. [ 导 读 ]条件语句通过一个或多个布尔表达式的执行结果(真值或假值)决定下一步的执行方向.所谓布尔 ...

  6. android系统手机的基本知识和介绍

    android系统手机的基本知识和介绍 2011年11月14日 android系统手机的基本知识和介绍 Android系统的手机现在是越来越受欢迎了.看到周边的同事个个都换上了android系统的手机 ...

  7. 北医专科计算机试题及答案,计算机考研怎么复习-病例题考的是同学们把所学的理论知识与临床实践相结合的能力-专业课学习...

    一.各科目备考指导 1.选课本复习资料 课本:选择最新的版本,最好是人民卫生出版社第七版教材 资料:贺银成的<西医综合辅导讲义>,北医"黄皮书",贺银成的同步训练,北医 ...

  8. shell脚本的基础知识

    shell脚本的基础知识 1 什么是shell 2 shell脚本的意义 3 如何创建shell脚本 4 如何执行shell脚本 5如何对脚本脚本进行调试 6 脚本练习 1 什么是shell shel ...

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

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

最新文章

  1. Unity3d webplayer发布的问题和100%自适应浏览器
  2. 思考题-算法小思考题
  3. TESTb需要向至少十几家应用商店提交上线审核,且每个应用商店要求的资料可能都不一样,异常繁琐
  4. 两数之和,输入有序数组 leetcode C++
  5. shell变量里的字符替换
  6. 【声传播】——角谱理论、模式理论及三维傅里叶变换
  7. 佛说剖腹产的孩子_选择好的剖腹产时间会改变孩子的命运吗?
  8. 国内首个SENT 信号解析软件 适配NXP KMA321, melexis MLX90372等SENT信号输出芯片 完美替代PicoScope 解析SENT
  9. Linux网络编程——UDP编程
  10. 浅谈JSP编程的网店管理系统构造
  11. 第9届蓝桥杯Java组省赛
  12. 成功解决tensorflow.python.framework.errors_impl.UnimplementedError: Cast string to int32 is not supporte
  13. 创建 SSH key
  14. 导出计算机配置信息吗,4种方式:查看电脑配置信息,没有必要用第三方软件。...
  15. 给你的App添加动画效果
  16. iOS关闭键盘的两种简单方法
  17. Windows静默安装
  18. Java 将小写的数字转换成对应的大写的汉字数字
  19. 蓝桥杯——单片机设计与开发初学者必备资料
  20. 把php放入火车头采集,火车头采集文章并导入帝国CMS

热门文章

  1. 业界首个!华为联合中国信通院等发布《网络体系强基展望白皮书》
  2. 量子计算和量子模拟研究获进展
  3. 新一代人工智能专利分析
  4. 腾飞资本任溶 :互联网大脑,新的天方夜谭?—评《崛起的超级智能》
  5. 回顾 | 2018年十大AI新闻 中国继续占据主导优势
  6. CES现场低调的主线,近在咫尺的5G商业化 | CES2018技术趋势
  7. 李开复:明年会有一批AI公司倒闭
  8. 怎么请假显智商高?评论区亮了! | 每日趣闻
  9. 库克喜提 8 亿年终奖,2020 年整体薪酬增长 28%
  10. 美团今年应届生年薪 35w+?为什么互联网大厂校招的薪资一年比一年高?