shell中的条件判断if和测试
(一)条件判断 if 中-z 到 -d 的意思
[ -a file ] 若file存在,则为真。
[ -b file ] 若file存在且是一个块特殊文件,则为真。
[ -c file ] 若file存在且是一个字特殊文件,则为真。
[ -d file ] 若file存在且是一个目录,则为真。
[ -e file ] 若file存在,则为真。
[ -f file ] 若file存在且是一个普通文件,则为真。
[ -g file ] 若file存在且已经设置了SGID,则为真。
[ -h file ] 若file存在且是一个符号连接,则为真。
[ -k file ] 若file存在且已经设置了粘制位,则为真。
[ -p file ] 若file存在且是一个管道,则为真。
[ -r file ] 若file存在且是可读的,则为真。
[ -s file ] 若file存在且大小不为0,则为真。
[ -t FD ] 若文件描述符FD打开且指向一个终端,则为真。
[ -u file ] 若file存在且设置了SUID,则为真。
[ -w file ] 若file存在且是可写的,则为真。
[ -x file ] 若file存在且是可执行的,则为真。
[ -O file ] 若file存在且是有效用户ID,则为真。
[ -G file ] 若file存在且是有效用户组,则为真。
[ -L file ] 若file存在且是一个符号连接,则为真。
[ -S file ] 若file存在且是一个套接字,则为真。
(二)条件测试
使用 “test” 或 “[ ]” 命令:
if test -f file.c
then ...
fi
或者:
if [ -f file.c ]
then ...
fi
注意:在使用方括号”[]”来测试条件时,方括号要与测试条件之间留出空格。
测试条件分类:
字符串比较类\算术比较类\与文件相关的条件测试类
1.字符串比较类:
string1 = string2 如果两字符串相同,则结果为真
string1 != string2 如果两字符串不相同,则结果为真
-n string 如果字符串不是空,则结果为真
-z string 如果字符串是空,则结果为真
注意在比较相等或不等的时侯,=/!=的两边要与比较的两字符串要有空格符相隔开
2.算术比较类:
- expression1 –eq expression2 #如果两个表达式相等,则结果为真
- expression1 –ne expression2 #如果两个表达式不等,则结果为真
- expression1 –gt expression2 #如果前一个表达式大于后一个表达式,则结果为真
- expression1 –ge expression2 #如果前一个表达式大于或等于后一个表达式,则结果为真
- expression1 –lt expression2 #如果前一个表达式小于后一个表达式,则结果为真
- expression1 –le expression2 #如果前一个表达式小于或等于后一个表达式,则结果为真
- ! expression #取表达式的非,即表达式为假,则结果为真
- 3.文件比较类:
[ FILE1 -nt FILE2 ] 如果 FILE2 比 FILE1 要老, or 如果 FILE1 exists and FILE2 does not则为真。
[ FILE1 -ot FILE2 ] 如果 FILE1 比 FILE2 要老, 或者 FILE2 存在且 FILE1 不存在则为真。
[ FILE1 -ef FILE2 ] 如果 FILE1 和 FILE2 指向相同的设备和节点号则为真。
shell中的条件判断if和测试的更多相关文章
- shell中的条件判断以及与python中的对比
shell中比如比较字符串.判断文件是否存在及是否可读等,通常用"[]"来表示条件测试. 注意:这里的空格很重要.要确保方括号的空格. if ....; then ...
- linux shell中的条件判断语句
http://bbs.chinaunix.net/thread-396805-1-1.html shell 判断语句 流程控制 "if" 表达式 如果条件为真则执行then后面的部 ...
- shell中的条件判断、参数以及变量替换
文章转自: http://www.cnblogs.com/maxupeng/archive/2011/07/02/2096551.html 一.test命令 test命令是shell内部命令,它计算作 ...
- shell中的条件判断
read命令 命令的语法: read [参数] 变量名 常用的参数如下: -t timeout 设定超时时间. -p prompt 设定提示信息,该提示信息将会显在光标前. 条件测试: 条件测试可以判 ...
- Shell编程中的条件判断(条件测试)
Shell中的条件判断(测试)类型: 1) 整数测试 2) 字符测试 3) 文件测试 条件测试的表达式: (注: expression 与 [] 之间空格不能省略) [ expressi ...
- Linux centosVMware 自动化运维Ansible介绍、Ansible安装、远程执行命令、拷贝文件或者目录、远程执行脚本、管理任务计划、安装rpm包/管理服务、 playbook的使用、 playbook中的循环、 playbook中的条件判断、 playbook中的handlers、playbook实战-nginx安装、管理配置文件
一.Ansible介绍 不需要安装客户端,通过sshd去通信 基于模块工作,模块可以由任何语言开发 不仅支持命令行使用模块,也支持编写yaml格式的playbook,易于编写和阅读 安装十分简单,ce ...
- Shell学习(六)——条件判断总结
Shell学习(六)--条件判断总结 [1]https://www.cnblogs.com/zhw-626/p/8528001.html [2]https://www.cnblogs.com/yizh ...
- Shell脚本IF条件判断和判断条件总结
转自:http://m.jb51.net/article/56553.htm 这篇文章主要介绍了Shell脚本IF条件判断和判断条件总结,本文先是给出了IF条件判断的语法,然后给出了常用的判断条件总结 ...
- sql 语句中使用条件判断case then else end
sql 语句中使用条件判断case then else end范例: SELECT les.[nLessonNo] FROM BS_Lesson AS les WHERE les.[sClassCod ...
随机推荐
- Web 开发者不可不知的15条编码原则
HTML 已经走过了近20的发展历程.从HTML4到XHTML,再到最近十分火热的HTML5,它几乎见证了整个互联网的发展.但是,即便到现在,有很多基础的概念和原则依然需要开发者高度注意.下面,向大家 ...
- 引用类型 ( 对象定义 )——Object 类型
本文地址:http://www.cnblogs.com/veinyin/p/7607100.html 创建实例 new 操作符后跟构造函数 var people = new Object(); pe ...
- kartik\grid\GridView 合计,多选,导出excel,header修改 等方法集合!
先上完整demo 具体的以后再说 <?php //use yii\web\View; use kartik\grid\GridView; use yii\bootstrap\Html; use ...
- c++中指针常量,常指针,指向常量的常指针区分
const char * myPtr = &char_A;//指向常量的指针 char * const myPtr = &char_A;//常量的指针 const char * con ...
- 每天一条linux命令(1):ls命令
ls命令是linux下最常用的命令.ls命令就是list的缩写缺省下ls用来打印出当前目录的清单如果ls指定其他目录那么就会显示指定目录里的文件及文件夹清单. 通过ls 命令不仅可以查看linu ...
- HDU 5936 朋友
题意为给出一棵n个节点的树,这棵树的每条边有一个权值,这个权值只可能是0或1. 在一局游戏开始时,会确定一个节点作为根. 当一方操作时,他们需要先选择一个不为根的点,满足该点到其父亲的边权为1; 然后 ...
- 001使用smokeping监控idc机房网络质量情况
最近工作比较忙,也没有时间写博客,看到好友芮峰云最近一直在写博客,所以也手痒了,就先把之前的一些积累下来的文章分享给大家. 本文是介绍如何的使用smokeping来监控idc机房的网络质量情况,从监控 ...
- 2017百度春招<有趣的排序>
题目 度度熊有一个N个数的数组,他想将数组从小到大排好序,但是萌萌的度度熊只会下面这个操作:任取数组中的一个数然后将它放置在数组的最后一个位置.问最少操作多少次可以使得数组从小到大有序? #inclu ...
- LightOJ - 1179 Josephus Problem(约瑟夫环)
题目链接:https://vjudge.net/contest/28079#problem/G 题目大意:约瑟夫环问题,给你n和k(分别代表总人数和每次要数到k),求最后一个人的位置. 解题思路:因为 ...
- POJ 2186 Popular cows(Kosaraju+强联通分量模板)
题目链接:http://poj.org/problem?id=2186 题目大意:给定N头牛和M个有序对(A,B),(A,B)表示A牛认为B牛是红人,该关系具有传递性,如果牛A认为牛B是红人,牛B认为 ...