Shell条件判断if中的-a到-z的意思
[ -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则为真。
[ ARG1 OP ARG2 ] “OP” is one of -eq, -ne, -lt, -le, -gt or -ge. These arithmetic binary operators return true if “ARG1” is equal to, not equal to, less than, less than or equal to, greater than, or greater than or equal to “ARG2”, respectively. “ARG1” and “ARG2” are integers.
=====================================================================
基本上和其他脚本语言一样。没有太大区别。不过值得注意的是。[]里面的条件判断。
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则为真。
[ ARG1 OP ARG2 ] “OP” is one of -eq, -ne, -lt, -le, -gt or -ge. These arithmetic binary operators return true if “ARG1” is equal to, not equal to, less than, less than or equal to, greater than, or greater than or equal to “ARG2”, respectively. “ARG1” and “ARG2” are integers.
相关推荐
在Shell脚本编程中,`if`语句是实现条件判断的重要工具之一。通过`if`语句,我们可以根据不同的条件来执行相应的代码块。而在Shell脚本中进行文件测试时,会用到一系列的选项,这些选项可以帮助我们检测文件的各种...
详细描述了shell脚本中,if判断文件时用到字母参数的含义,,以及逻辑判断的意义如:-nt/-ot/-ef等等
在深入探讨shell脚本中`if`语句的条件判断逻辑之前,我们首先需要理解shell脚本的基础概念。Shell脚本是一种为Unix操作系统家族(包括Linux)编写的脚本语言,它允许用户通过一系列命令来自动化任务处理。`if`语句...
在Linux shell脚本编程中,条件判断语句`if`是一种关键的控制结构,它允许我们根据特定条件来决定执行哪些命令。本文将详细介绍在`if`语句中使用的一系列标志,从`-a`到`-z`,它们在进行文件检查和逻辑判断时起到...
Linux Shell 编程中,if 语句是一种基本的控制结构,用于根据条件执行不同的操作。if 语句可以与各种参数结合使用,以判断文件、目录、字符串、数字等的状态,从而执行相应的操作。本文将详细解释 Linux Shell 编程...
本文将详细介绍如何在Shell脚本中使用`if`语句,包括其语法、注意事项以及通过具体的示例来加深理解。 #### 11.5.1 if语句的基础 `if`语句允许基于一个或多个条件进行决策。如果指定的条件为真,则执行相应的命令...
总之,掌握Shell中的运算符和if条件判断对于编写功能丰富的自动化脚本至关重要。通过熟练运用这些工具,你可以创建能够根据系统状态、文件属性或其他条件执行不同任务的脚本。在实际工作中,这能大大提高工作效率,...
`if`语句用于条件判断,如`if [ condition ]; then ... fi`。`for`、`while`和`until`循环用于重复执行代码块。 7. **函数定义** Shell支持函数,如`function myfunc() { commands; }`。函数可以接收参数,通过`$...
本文主要探讨了Shell中的条件语句及其判断机制,包括条件测试、if条件语句以及一些实用的扩展功能。 首先,条件测试是进行判断的基础,它包含了对文件、整数、字符串以及逻辑的比较。文件测试使用`[`或`test`命令,...
在Linux Shell编程中,`if`语句是用于条件判断的关键结构,它允许根据特定条件执行不同的代码块。本文将详细介绍Linux Shell中`if`语句的各种判断方式及其相关知识。 1. **文件属性判断**: - `-b file`:如果`...
在Linux Shell脚本编程中,内置判断语句是不可或缺的一部分,它们用于检查各种条件并根据结果执行相应的操作。这些判断语句通常与`test`命令或方括号`[` `]`结合使用,用于测试文件状态、数值比较、字符串比较等。在...
Shell脚本中的if else语句是程序控制流程的关键部分,用于根据特定条件执行不同的操作。在Shell编程中,if else语句与其他高级编程语言(如Java、PHP)有着显著的区别,尤其是在处理空语句和语法结构时。下面将详细...
4. **条件判断**:如if...else...fi结构,test命令或[]用于进行各种条件测试,例如文件是否存在、文件类型、字符串比较等。 5. **循环结构**:while、for循环,以及until循环,用于重复执行某些命令。 6. **函数**...
本文将深入探讨shell脚本中的条件判断和逻辑运算,以及它们在实际脚本编写中的应用。 首先,我们要理解shell脚本中的一个核心概念:命令的状态返回值。每个命令执行后都会返回一个状态码,成功执行通常是0,表示真...
在Linux shell编程中,`if`语句是用于条件判断的关键结构,它允许根据特定条件执行不同的代码块。本文将详细解析Linux中的`if`语句,并提供相关的使用示例。 `if`语句的基本语法如下: ```bash if condition then ...
在Linux Shell脚本中,`if`语句是一种常用的条件控制结构,它可以根据不同的条件来执行相应的代码块。本文将详细介绍`if`语句中涉及的各种参数及其用法,帮助读者更好地理解和掌握如何在Shell脚本中灵活使用`if`语句...
在Shell脚本编程中,条件测试和if条件语句是不可或缺的部分,它们使得脚本能够根据不同的条件执行相应的操作。本文将深入探讨这两个概念及其在实际应用中的使用方法。 首先,条件测试是通过检查特定条件来决定是否...
shell学习笔记的主要内容是 shell 变量、环境变量、条件判断语句、循环语句等。下面对这些知识点进行详细的解释。 一、shell 变量 shell 变量可以分为系统变量和环境变量。系统变量主要用于对参数判断和命令...