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
随机推荐
- 导入表数据 txt
导入表数据 txt mysql> load data infile "D:/import.txt" into table shop;输出: Query OK, rows af ...
- PHP 文件写入或追加数据
PHP file_put_contents() 函数是一次性向文件写入字符串或追加字符串内容的最合适选择. file_put_contents() file_put_contents() 函数用于把字 ...
- Python实现合并排序MergeSort
def merge(sort_list, start, mid, end): left_list = sort_list[start:mid] right_list = sort_list[mid:e ...
- WCF-NAT模式访问
由于项目需求,第一次用wcf做基于internet的访问.整理一下自己的探索,作为总结,也供自己以后回顾. 要求:(1)wcf服务需要部署在internet之中. (2)双工通信. 出现问题: 根据上 ...
- cf Perfect Pair
http://codeforces.com/contest/318/problem/C #include <cstdio> #include <cstring> #includ ...
- LeetCode_Maximal Rectangle
Given a 2D binary matrix filled with 0's and 1's, find the largest rectangle containing all ones and ...
- Qt跨线程信号和槽的连接(默认方式是直连和队列的折中)
Qt支持三种类型的信号-槽连接:1,直接连接,当signal发射时,slot立即调用.此slot在发射signal的那个线程中被执行(不一定是接收对象生存的那个线程)2,队列连接,当控制权回到对象属于 ...
- 为什么memset的第二个参数不把int替换成char
memset是一个经常被用来初始化数组的函数,其定义如下: 1 void * memset ( void * ptr, int value, size_t num ); 它的效果大致是把以ptr为起始 ...
- Android获取当前时间与星期几
public class DataString { private static String mYear; private static String mMonth; private static ...
- linux 下的对拍
搞了一上午终于弄好了一个对拍,估计以后调试会方便很多. #!/bin/bash while true; do ./makedate>tmp.in ./XXXXX<tmp.in>tmp ...