`

Bash 中的 -n, -z, [], [[]] 条件测试

    博客分类:
  • Bash
 
阅读更多

1、在中括号中,判断变量的值, 加不加双引号的问题?

 

-n STRING

    the length of STRING is nonzero

-z STRING

    the length of STRING is zero


返回0,表示true

返回1,表示false

pid="123"
[ -z "$pid" ] 单对中括号,变量必须加双引号
[[ -z $pid ]] 双对中括号,变量不用加双引号
 
[ -n "$pid" ] 单对中括号,变量必须加双引号
[[ -z $pid ]] 双对中括号,变量不用加双引号

 
2、多个条件判断,[] 和 [[]] 的区别?


2.1:[[ ]] 双对中括号,是不能使用 -a 或 -o的参数进行比较的;只能使用 && 或 ||

[[ 5 -lt 3 || 3 -gt 6 ]]

[[ 5 -lt 3 ]] || [[ 3 -gt 6 ]]

 


2.2 [ ] 可以使用 -a 或 -o,但是必须在 [ ] 中括号内,例如:

[ 5 -lt 3 -o 3 -gt 2 ] 

 


如果想在中括号外判断两个条件,必须用&& 和 || 比较

[5 -lt 3 ] || [ 3 -gt 2]

[5 -gt 3 ] && [ 3 -gt 2] 

 


相对的,|| 和 && 不能在中括号内使用,只能在中括号外使用



3、当判断某个变量的值是否满足正则表达式的时候,必须使用[[ ]] 双对中括号

 

分享到:
评论

相关推荐

    bash笔记-03-流程控制.doc

    ### bash笔记-03-流程控制 #### 条件执行 在Bash脚本中,条件执行是一项重要的功能,...通过上述介绍,我们了解了Bash脚本中条件执行的基本概念和常用控制结构,这些知识对于编写复杂且具有逻辑性的脚本至关重要。

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

    ### Shell脚本中if语句中的-z到-d选项详解 #### 概述 在Shell脚本编程中,`if`语句是实现条件判断的重要工具之一。通过`if`语句,我们可以根据不同的条件来执行相应的代码块。而在Shell脚本中进行文件测试时,会...

    详解shell脚本[] [[]] -n -z 的含义解析

    在实际应用中,`-z`和`-n`选项用于检查变量是否为空。`-z`用于测试变量的长度是否为零,即变量是否为空。如果变量为空,`-z`返回真(0),否则返回假(1)。`-n`则相反,它检查变量是否有非零长度,即变量是否非空。...

    gprMax_V3使用说明.docx

    需要注意的是,在输入文件中必须设置天线的移动步距,否则所有采集道的数据将在同一位置获取。 ##### 3.2 数据合并 模拟完成后,会得到多个A扫描输出文件,需要将这些文件合并成一个B扫描文件。使用以下命令: ``...

    Bash参考手册(Linux Shell),简单的页面中,有BASH的基本用法,非常方便

    Bash提供了多种用于比较数值或字符串的条件测试: - **数值比较**: - `-eq` 等于 - `-ne` 不等于 - `-lt` 小于 - `-le` 小于等于 - `-gt` 大于 - `-ge` 大于等于 - **字符串比较**: - `==` 字符串相等 - ...

    Linux系统-tar命令大全

    其中`-c`用于将压缩输出重定向到标准输出,`-d`用于解压缩,`-t`用于测试压缩文件是否损坏,`-#`用于设置压缩级别(1-9)。 2. **bzip2**: ```bash bzip2 [-cdz] file ``` 类似于`gzip`,`-c`用于将压缩输出...

    Linux常用命令和管理09-shell之脚本编程条件判断及逻辑运算1

    同时,有单目测试`-n String`(字符串不为空)和`-z String`(字符串为空)。 文件测试主要用于判断文件是否存在、属性等。例如,`-f file`检查是否为普通文件,`-d file`检查是否为目录,`-s file`检查文件是否...

    自己在看的bash基础编程资料

    ### 四、条件测试 - `test` 命令 #### 1. 文件测试 - `-d file`:检查文件是否为目录。 - `-e file`:检查文件是否存在。 - `-f file`:检查文件是否为普通文件。 - `-g file`:检查文件是否有组执行权限。 - `-r ...

    shell 基本知识,包括控制结构,条件测试,通配符,引号等

    在本文中,我们将深入探讨Shell的基本知识,包括控制结构、条件测试、通配符和引号的使用。 **一、控制结构** 1. **顺序执行**:这是最基础的执行模式,命令按照在脚本或终端输入的顺序依次执行。 2. **分支结构**...

    linuxnc操作

    此命令中 `-v` 表示详细输出,`-w 2` 表示超时时间为 2 秒,`-z` 表示进行端口扫描模式。 ##### 2. 文件传输 `nc` 还可以用来传输文件,比如将 `test.txt` 从 192.168.2.33 传输到 192.168.2.34: - **接收方**...

    Linux学习笔记

    grep -iv [指定字串] [文件] # 搜索文件中符合指定条件的行。 ``` **25. `man`:获得帮助信息** 示例: ```bash man [命令或配置文件] # 获取命令的帮助信息。 man 5 [配置文件名] # 获取配置文件的帮助信息。 ```...

    if在shell中的各种参数

    其中`[]`括号中的`条件`可以是文件测试操作符、字符串测试操作符或算术比较操作符等。 #### 文件测试操作符 文件测试操作符用于检测文件的状态,包括文件的存在性、文件类型等。 - `[-a FILE]`: 测试`FILE`是否...

    Linux常用命令和管理10-shell之条件测试及脚本实例11

    本文将详细讲解在Linux中如何进行条件测试以及编写相关脚本实例。条件测试是Linux脚本编程中的核心部分,它允许我们根据不同的条件执行不同的操作,极大地提高了自动化任务的灵活性。 1. **条件测试** 条件测试在...

    bash-tutorial:Bash 教程

    2. **字符串比较**: `-z`测试字符串是否为空,`-n`测试非空,`==`和`!=`用于字符串比较。 3. **文件测试**: `-f`, `-d`, `-e`, `-s`等用于检查文件属性。 ### 四、流程控制 1. **if语句**: `if condition; then ...

    BASH脚本从零开始学

    BASH(Bourne Again SHell)是一种广泛应用于Linux系统中的命令解释器或脚本执行环境,它继承了早期的Bourne Shell,并在此基础上进行了大量改进。BASH支持命令历史记录、别名、命令行编辑等功能,同时也提供了一套...

    高级bash脚本编程指南

    2. **条件表达式**:Bash支持多种条件测试,如文件测试(-f, -d, -e等)、数字比较(-eq, -gt, -lt等)以及字符串操作(-z, -n等)。 3. **流程控制**:Bash提供了if-else、while、for循环结构,以及case语句,用于...

    shell编程讲座shell编程讲座

    - `test` 命令用于进行条件测试,常用于if语句中。 - 条件表达式的常用操作符: - `-r`: 测试文件是否存在且可读。 - `-w`: 测试文件是否存在且可写。 - `-x`: 测试文件是否存在且可执行。 - `-f`: 测试是否为...

    linux技巧1

    这组命令首先使用`find`查找满足条件的文件,然后通过`awk`对文件名进行处理,最后使用`sh`执行实际的移动操作。 ### Tip13: Linux与Windows之间的文件共享 在Linux系统与Windows系统之间进行文件共享可以通过...

Global site tag (gtag.js) - Google Analytics