shell中 if 判断

整数比较:

-eq 等于,如:if [ "$a" -eq "$b" ]

-ne 不等于,如:if [ "$a" -ne "$b" ]

-gt 大于,如:if [ "$a" -gt "$b" ]

-ge 大于等于,如:if [ "$a" -ge "$b" ]

-lt 小于,如:if [ "$a" -lt "$b" ]

-le 小于等于,如:if [ "$a" -le "$b" ]

<   小于(需要双括号),如:(("$a" < "$b"))

<=  小于等于(需要双括号),如:(("$a" <= "$b"))

>   大于(需要双括号),如:(("$a" > "$b"))

>=  大于等于(需要双括号),如:(("$a" >= "$b"))

字符串比较:

= 等于,如:if [ "$a" = "$b" ]

== 等于,如:if [ "$a" == "$b" ]

!= 取反,如 if [ "$a" != "$b" ]

-z 字符串为"null".就是长度为0. 
-n 字符串不为"null"

其他判断参数:

-e                          文件存在
-a                          文件存在(已被弃用)
-f                          判断文件是一个regular文件(正常文件,非目录或设备)
-s                          文件长度不为0
-d                          判断对象是目录
-b                          判断对象是块设备
-c                          判断对象是字符设备
-p                          判断对象是管道
-h                          判断文件是符号连接
-L                          判断文件是符号连接
-S(大写)                    判断文件是一个socket
-t                          关联到一个终端设备的文件描述符。用来检测脚本的stdin[-t0]或[-t1]是一个终端
-r                          文件具有读权限,针对运行脚本的用户
-w                          文件具有写权限,针对运行脚本的用户
-x                          文件具有执行权限,针对运行脚本的用户
-u                          set-user-id(suid)标志到文件,即普通用户可以使用的root权限文件,通过chmod +s file实现
-k                          设置粘贴位
-O                          运行脚本的用户是文件的所有者
-G                          文件的group-id和运行脚本的用户相同
-N                          从文件最后被阅读到现在,是否被修改

f1 -nt f2                   文件f1是否比f2新
f1 -ot f2                   文件f1是否比f2旧
f1 -ef f2                   文件f1和f2是否硬连接到同一个文件

时间: 2024-11-05 22:47:25

shell中 if 判断的相关文章

shell中条件判断if中的-z到-d的意思

shell中条件判断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则

shell中条件判断if中的-z到-d

shell中条件判断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则为真

shell中怎么判断输入的是否是数字

在shell中我们经常要面临一个问题就是,怎么判断我交互式的前端,使用者输入的是否是数字呢?这里小编我也就会两种方法,所以今天就在这说一说 第一种:sed格式 首先:我们先(在命令行直接输出模拟一下,如果都正确再在shell脚本中进行书写.)直接echo输出一下 echo "111asd" 第一步:思想 然后我们就要想一下我们要说用sed判断,但是sed的最主要的功能是什么?替换!!!当然是替换,既然是替换那么我们能不能直接把echo输出的数字直接替换掉,然后看这个输出还剩下什么呢?如

Shell中条件判断语法与判断条件

一,简介 Shell各种判断结构和运算符的用法是shell编程的基础,了解shell的判断.运算符和一些退出状态 对后面的学习有很重要的影响.shell有一个内部命令test经常用于对判断语句 进行测试一种或几种状态的条件是否成立 二. 判断条件 (1)Linux的shell中的测试命令,用于测试某种条件或某几种条件是否真实存在 测试命令是判断语句和循环语句中条件测试的工具,对判断和运算符的比较测试有很大的帮助. (2)测试条件为真,返回一个0值:      为假,返回一个非0整数值 测试命令有

shell中if判断条件中使用[],[[]],(())还是test,let的比较

学习shell的时候总是被shell里的条件判断方式搞得头疼,经常不知道改 用[],[[]],(())还是test,let,而很少有书把它们的关系讲解的很清楚(应该是我悟性差或是看书太少),今天总结一下,基础的东西如它们 的使用方法不再赘述,重点说说它们的区别的使用时应该注意的地方. 先说[]和test,两者是一样的,在命令行里test expr和[ expr ]的效果相同.test的三个基本作用是判断文件.判断字符串.判断整数.支持使用与或非将表达式连接起来.要注意的有: 1.test中可用的

shell中条件判断文件, 判断数值, 判断字符; 逻辑比较, test的使用

shell中的条件判断: (选项参考man test) 1. 文件判断: 判断目录存在不存在: test -d /home 执行后使用$?查看结果为0, 表示是目录; test命令无论执行结果如何, 都不会报错, 只会返回0或非0 test -d /home 语法等同于 [ -d /home ] test可使用[来代替, 后面的]只不过是一个参数, 不要把这个当作方括号看待, 人家是个命令啊. 2. 数值判断: if [ $UID -ne 0 ]; then $UID用户判断当前用户是否是roo

shell中如何判断某一命令是否存在

参考: http://www.cnblogs.com/tuzkee/p/3755230.html https://segmentfault.com/q/1010000000156870 http://stackoverflow.com/questions/592620/check-if-a-program-exists-from-a-bash-script 避免使用which,可用下列命令实现: $ command -v foo >/dev/null 2>&1 || { echo &g

Shell中各种判断语法

Shell判断 #按照文件类型进行判断 -b 判断文件是否存在,并且是否为快设备文件(是块设备文件为真) -c 判断文件是否存在,并且是否为字符设备文件(是字符设备文件为真) -d 判断文件是否存在,并且是否为目录文件(是目录为真) -e 判断文件是否存在,存在为真 -f 判断文件是否存在,并且是否为普通文件(存在为真) -L 判断文件是否存在,并且是否为符号链接文件(是符号链接文件为真) -p 判断文件是否存在,并且是否为管道文件(是管道文件为真) -s 判断文件是否存在,并且是否为空(非空为

shell 中条件判断

if 中的 -z 到 -d 的意思 2011-09-05 10:30 [ -a FILE ] 如果 FILE 存在则为真. [ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真. [ -c FILE ] 如果 FILE 存在且是一个字特殊文件则为真. [ -d FILE ] 如果 FILE 存在且是一个目录则为真. [ -e FILE ] 如果 FILE 存在则为真. [ -f FILE ] 如果 FILE 存在且是一个普通文件则为真. [ -g FILE ] 如果 FILE 存

shell中if判断一个变量为空

1.最直接简单的判断 [ ! $a ] && echo "a is null" 不用那些if语句了,直接缩短代码量. 2. 变量通过" "引号引起来 如下所示:,可以得到结果为 IS NULL. #!/bin/sh a= if [ ! -n "$a" ]; then echo "IS NULL" else echo "NOT NULL" fi 3. 直接通过变量判断 如下所示:得到的结果为: