Shell中[]里面的条件判断

1.字符串判断


str1 = str2


当两个串有相同内容、长度时为真


str1 != str2


当串str1和str2不等时为真


-n str1


当串的长度大于0时为真(串非空)


-z str1


当串的长度为0时为真(空串)


str1


当串str1为非空时为真

2.数字的判断


int1 -eq int2


两数相等为真


int1 -ne int2


两数不等为真


int1 -gt int2


int1大于int2为真


int1 -ge int2


int1大于等于int2为真


int1 -lt int2


int1小于int2为真


int1 -le int2


int1小于等于int2为真

3.文件的判断


-r file


用户可读为真


-w file


用户可写为真


-x file


用户可执行为真


-f file


文件为正规文件为真


-d file


文件为目录为真


-c file


文件为字符特殊文件为真


-b file


文件为块特殊文件为真


-s file


文件大小非0时为真


-t file


当文件描述符(默认为1)指定的设备为终端时为真

4.复杂逻辑判断


-a



-o



!


[ -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 存在且是一个名字管道(F如果O)则为真。  
[ -r FILE ]  如果 FILE 存在且是可读的则为真。  
[ -s FILE ]  如果 FILE 存在且大小不为0则为真。  
[ -t FD ]  如果文件描述符 FD 打开且指向一个终端则为真。  
[ -u FILE ]  如果 FILE 存在且设置了SUID (set user ID)则为真。  
[ -w FILE ]  如果 FILE 如果 FILE 存在且是可写的则为真。  
[ -x FILE ]  如果 FILE 存在且是可执行的则为真。  
[ -O FILE ]  如果 FILE 存在且属有效用户ID则为真。  
[ -G FILE ]  如果 FILE 存在且属有效用户组则为真。  
[ -L FILE ]  如果 FILE 存在且是一个符号连接则为真。  
[ -N FILE ]  如果 FILE 存在 and has been mod如果ied since it was last read则为真。  
[ -S FILE ]  如果 FILE 存在且是一个套接字则为真。  
[ FILE1 -nt FILE2 ]  如果 FILE1 has been changed more recently than
FILE2, or 如果 FILE1 exists and FILE2 does not则为真。  
[ FILE1 -ot FILE2 ]  如果 FILE1 比 FILE2 要老, 或者 FILE2 存在且 FILE1 不存在则为真。  
[ FILE1 -ef FILE2 ]  如果 FILE1 和 FILE2 指向相同的设备和节点号则为真。  
[ -o OPTIONNAME ]  如果 shell选项 “OPTIONNAME” 开启则为真。  
[ -z STRING ]  “STRING” 的长度为零则为真。  
[ -n STRING ] or [ STRING ]  “STRING” 的长度为非零 non-zero则为真。  
[ STRING1 == STRING2 ]  如果2个字符串相同。 “=” may be used instead of “==” for strict
POSIX compliance则为真。  
[ STRING1 != STRING2 ]  如果字符串不相等则为真。 
[ STRING1 < STRING2 ]  如果 “STRING1” sorts before “STRING2”
lexicographically in the current locale则为真。  
[ STRING1 > STRING2 ]  如果 “STRING1” sorts after “STRING2” lexicographically
in the current locale则为真。

[
-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 存在且是一个名字管道(F如果O)则为真。  
[ -r FILE ]  如果 FILE 存在且是可读的则为真。  
[ -s FILE ]  如果 FILE 存在且大小不为0则为真。  
[ -t FD ]  如果文件描述符 FD 打开且指向一个终端则为真。  
[ -u FILE ]  如果 FILE 存在且设置了SUID (set user ID)则为真。  
[ -w FILE ]  如果 FILE 如果 FILE 存在且是可写的则为真。  
[ -x FILE ]  如果 FILE 存在且是可执行的则为真。  
[ -O FILE ]  如果 FILE 存在且属有效用户ID则为真。  
[ -G FILE ]  如果 FILE 存在且属有效用户组则为真。  
[ -L FILE ]  如果 FILE 存在且是一个符号连接则为真。  
[ -N FILE ]  如果 FILE 存在 and has been mod如果ied since it was last read则为真。  
[ -S FILE ]  如果 FILE 存在且是一个套接字则为真。  
[ FILE1 -nt FILE2 ]  如果 FILE1 has been changed more recently than
FILE2, or 如果 FILE1 exists and FILE2 does not则为真。  
[ FILE1 -ot FILE2 ]  如果 FILE1 比 FILE2 要老, 或者 FILE2 存在且 FILE1 不存在则为真。  
[ FILE1 -ef FILE2 ]  如果 FILE1 和 FILE2 指向相同的设备和节点号则为真。  
[ -o OPTIONNAME ]  如果 shell选项 “OPTIONNAME” 开启则为真。  
[ -z STRING ]  “STRING” 的长度为零则为真。  
[ -n STRING ] or [ STRING ]  “STRING” 的长度为非零 non-zero则为真。  
[ STRING1 == STRING2 ]  如果2个字符串相同。 “=” may be used instead of “==” for strict
POSIX compliance则为真。  
[ STRING1 != STRING2 ]  如果字符串不相等则为真。 
[ STRING1 < STRING2 ]  如果 “STRING1” sorts before “STRING2”
lexicographically in the current locale则为真。  
[ STRING1 > STRING2 ]  如果 “STRING1” sorts after “STRING2” lexicographically
in the current locale则为真。

时间: 2024-10-06 00:38:44

Shell中[]里面的条件判断的相关文章

linux Shell中常用的条件判断

-b file            若文件存在且是一个块特殊文件,则为真 -c file            若文件存在且是一个字符特殊文件,则为真 -d file            若文件存在且是一个目录,则为真 -e file            若文件存在,则为真 -f file            若文件存在且是一个规则文件,则为真 -g file            若文件存在且设置了SGID位的值,则为真 -h file            若文件存在且为一个符合链接

(24)Poweshell中的if条件判断

在前面的章节中,主要介绍了Powershell的开发工具,变量,运算符以及一些特殊的变量,从本节开始介绍Powershell中的语法结构. 本节主要介绍Powershell中的if条件判断.另外希望读者从本节开始使用Powershell_ISE进行代命令的输入与运行,Powershell_ISE提供了界面化的命令输入,参数提示,自带补全,debug等特性,非常有利于编写正确的脚本. if可用于根据一个或多个条件测试的结果选择运行不同的命令.与Java.C#.C.C++编程语言中的if的使用方法完

SHELL学习笔记----IF条件判断,判断条件

SHELL学习笔记----IF条件判断,判断条件 前言: 无论什么编程语言都离不开条件判断.SHELL也不例外.  if list then           do something here       elif list then           do another thing here       else          do something else here fi  EX1: #!/bin/bash if [ `uname -m` == "x86_64" ]

shell脚本编程:条件判断if语句使用小结

shell脚本编程,有三种控制结构分别是:顺序结构,条件判断结构,循环结构.本文将总结shell脚本中条件判断结构的使用方法. 条件判断结构分为三种,单分支,双分支,多分支,等结构. 单分支结构的语法如下: if [ expression  ] ;then statement1 statement2 ......... fi 双分支语法结构: if [ expression ];then statement1 statement2 ..... else statement3 statement4

Linux shell脚本之 if条件判断

IF条件判断 1.基本语法: if [ command ]; then 符合该条件执行的语句 fi 2.扩展语法: if [ command ];then 符合该条件执行的语句 elif [ command ];then 符合该条件执行的语句 else 符合该条件执行的语句 fi 3.语法说明: bash shell会按顺序执行if语句,如果command执行后且它的返回状态是0,则会执行符合该条件执行的语句,否则后面的命令不执行,跳到下一条命令. 当有多个嵌套时,只有第一个返回0退出状态的命令

shell中if和相关判断符

1. 关于某个档名的『类型』侦测(存在与否),如 test -e filename -e 该『档名』是否存在?(常用) -f 该『档名』是否为档案(file)?(常用) -d 该『文件名』是否为目录(directory)?(常用) -b 该『文件名』是否为一个 block device 装置? -c 该『文件名』是否为一个 character device 装置? -S 该『档名』是否为一个 Socket 档案? -p 该『档名』是否为一个 FIFO (pipe) 档案? -L 该『档名』是否为

bash shell基础之二条件判断

if 条件判断; then statment else statment fi 或者 if 条件判断; then statment elif statment fi 反引号:将命令的执行结果返回给变量. set userID userID = `id -u user1` 提前结束一个脚本的命令:exit:退出当前进程.就是退出脚本 任何一个程序结束都有一个执行状态结果和执行结果.if取得是命令的状态结果 exit就可以定义脚本的执行状态结果. exit 0~255,0表示正确,1~255为错误.

Excel怎么样让负数自动显示红色在自定义格式中如何添加条件判断呢【已解决】

在通常的情况下,负数会用红色显示,而这里的负数就是一个简单的条件判断.那么怎么才能让excel遇到负数就变成红色,效果如图常见问题出现特定的数据时怎么变颜色? 比如数值为负数就自动变成红色? [解决方法,教程视频资料如下]资料来源:http://edu.51cto.com/course/15224.html 完整博客资料:http://blog.51cto.com/13172026/2292179 完整视频资料:http://edu.51cto.com/lecturer/13162026.htm

shell中if的各种判断

shell编程中使用到得if语句内判断参数 –b当file存在并且是块文件时返回真 -c当file存在并且是字符文件时返回真 -d当pathname存在并且是一个目录时返回真 -e当pathname指定的文件或目录存在时返回真 -f当file存在并且是正规文件时返回真 -g当由pathname指定的文件或目录存在并且设置了SGID位时返回为真 -h当file存在并且是符号链接文件时返回真,该选项在一些老系统上无效 -k当由pathname指定的文件或目录存在并且设置了"粘滞"位时返回真