shell中的if语句
语法格式
if command;then
commands
fi
其中的command包含如下:
shell command
任何shell命令,如果shell命令返回0,代表true,否则,代表false。并且多个command可以同时作为if的判断条件,即可以写为:
if command1;command2;command3;then
commands
fi
此时如果command3返回的结果是0,则运行commands,否则不运行,虽然command1和command2也会运行,但是它们运行的返回结果没有任何影响
test condition 或者 [ condition ]
两者等价,其中的condition可以是数字比较,可以是字符串比较,可以是文件比较:
数字比较
num1 eq num2 等于
num1 ne num2 不等于
num1 gt num2 大于
num1 ge num2 大于等于
num1 lt num2 小于
num1 le num2 小于等于
字符串比较
str1 = str2 等于
str1 != str2 不等于
str1 > str2 大于
str1 < str2 小于
-n str str的长度是否大于0
-z str str的长度是否为0
文件比较
-d file file是否为目录
-f file file是否为文件
-e file file是否存在
-s file file存在并且不为空
-r file file存在且可读
-w file file存在且可写
-x file file存在且可以执行
-O file file存在并且属于当前用户
-G file file存在并且属于当前用户所在的initial group(也叫default group)
file1 -nt file2 file1是否比file2新
file1 -ot file2 file1是否比file2旧
condition也可以复合的,通过&& 或者 || 连接:
[ condition1 ] && [ condition2]
[ condition1 ] || [condition2 ]
shell中的if语句的更多相关文章
- Shell中的循环语句实例
1.for循环语句实例1.1 最基本的for循环 #!/bin/bash for x in one two three four do echo number $x done 注:" ...
- shell中的比较语句
Linux比较字符串.判断文件是否存在及是否可读等,通常用"[]"来表示条件测试. 注意:这里的空格很重要.要确保方括号的空格.笔者就曾因为空格缺少或位置不对,而浪费好多宝贵的时间 ...
- shell中的循环语句
for语法格式 for var in list;do commands done 其中list可以包含: 1) 直接写 for alpha in a b c d;do echo $alpha done ...
- Shell中常用的语句
exit 完全中断脚本的执行 break 中断脚本的循环,但是会执行循环外的语句 continue 跳出本次循环,进行下一次循环 进一步了解三者的区别,有如下实验: 执行该脚本: 脚本正常运行情况: ...
- shell中的case语句
case语法: case $arg in arg1) 语句1 ;; arg2) 语句2 ;; *) help 语句 ;; esac eg: eg:
- shell中的循环语句while
循环语句的结构: ------------| while 条件 | do | 需要执行的命令 | done | -----------| 例如: 1.while一直循环 2.whi ...
- shell 中 if then语句中会跟着-ne -ge之类的参数的含义
if [ 1 -ne 1 ];then...fi这是指当1不等于1时执行then后的语句 -eq:等于-ne:不等于-le:小于等于-ge:大于等于-lt:小于-gt:大于
- shell中的判断语句
1.字符串判断 str1 = str2 当两个串有相同内容.长度时为真 str1 != str2 当串str1和str2不等时为真 -n str1 当串的长度大于0时为真(串非空,变量) -z str ...
- shell 中的if语句
if [ t != "." -a t != ".." ] 之前一直不知道 -a 是什么意思,后来才知道 -a = and ; -o = or
随机推荐
- ecmascript 的一些发展新动向
========== ecmascript 的一些发展新动向 (e5a57b27 - initial commit) 更弱.更受限 严格模式禁止 arguments.callee - 可以 " ...
- 转载:对#!/bin/sh的认识
转载网址:http://blog.163.com/hashes@yeah/blog/static/16867631220101029847420/ 对#!/bin/sh的认识 第一次学shell编程, ...
- document 写法
# UfsProgressBar ## Component InfoA progress bar component of specified progress. ## Usage```<ufs ...
- boost dijkstra获得两点间的最短路
需求是只需要得到两点间的最短路,不需要求得单源对于全图的最短路,使用boost中的dijsktra_shortest_path,当得到目标点的最短路时直接throw exception. #inclu ...
- Activiti工作流学习-----基于5.19.0版本(7)
八.BPMN 2.0流程图详解 BPMN 2.0的标准的出现是好事,用户不在被某个工作流开发商绑架或者在工作流中开发妥协,Activiti作为BPMN标准的一套解决方案,使得用户在选择工作流框架时可以 ...
- Linux_access the file or directory which start with "-"
cd -- filename/dirName [ccmobil@vm-a65a-fc19 wstemp]$ cd -/ -bash: cd: -: invalid option cd: usage: ...
- JAVA中this用法小结[转]
Java关键字this只能用于方法方法体内.当一个对象创建后,Java虚拟机(JVM)就会给这个对象分配一个引用自身的指针,这个指针的名字就是 this.因此,this只能在类中的非静态方法中使用,静 ...
- github恢复
一.查看修改日志信息 1)git log:显示最近到最远的提交日志 添加参数--pretty=oneline:查看简单的日志信息. 二.进行恢复到先前版本 1)在Git中,HEAD表示当前版本,上一个 ...
- BZOJ2751: [HAOI2012]容易题(easy)
2751: [HAOI2012]容易题(easy) Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 872 Solved: 377[Submit][S ...
- 读书笔记:java特种兵(上)
----看着样章,感觉还不错,就买下来了,书先不论好坏,悟到了一个道理,东西没有好与坏,只有适不适合. 第一章:想了解编译器是如何优化程序的,当年的编译原理没有学好啊