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

-z 判断 变量的值,是否为空; zero = 0

- 变量的值,为空,返回0,为true

- 变量的值,非空,返回1,为false

-n 判断变量的值,是否为空 name = 名字

- 变量的值,为空,返回1,为false

- 变量的值,非空,返回0,为true

pid="123"

[ -z "$pid" ] 单对中括号变量必须要加双引号

[[ -z $pid ]] 双对括号,变量不用加双引号

[ -n "$pid" ] 单对中括号,变量必须要加双引号

[[ -z $pid ]] 双对中括号,变量不用加双引号

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

[[ ]] 双对中括号,是不能使用 -a 或者 -o的参数进行比较的

[[ 5 -lt 3 || 3 -gt 6 ]] 一个条件满足,就成立 或者的关系

[[ 5 -lt 3 ]] || [[3 -gt 6 ]] 写在外面也可以

&& 必须两个条件同时满足,和上述一样,这里想说明的问题的是:

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

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

-a 和 -o就不成立了,是因为,[[]] 双对中括号,不能使用 -o和 -a的参数

直接报错:

[ ] 可以使用 -a -o的参数,但是必须在 [ ] 中括号内,判断条件,

例如:

[ 5 -lt 3 -o 3 -gt 2 ] 或者条件成立

[5 -lt 3 ] -o [ 3 -gt 2] 或者条件, 这个不成立,因为必须在中括号内判断

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

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

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

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

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

单对中括号,直接报错:

linux shell 逻辑判断 [] [[]] -n -z 用法区别相关推荐

  1. 【Shell系列】$(shell pwd)和$(pwd)用法区别

    Date: 2019-5-8 1.参考 $(shell pwd)和$(pwd)有什么区别 shell 基础 $(cd `dirname $0`;pwd) Linux常用命令简述–dirname与bas ...

  2. linux here用法,linux shell的here document用法(cat EOF)

    什么是Here Document? Here Document 是在Linux Shell 中的一种特殊的重定向方式,它的基本的形式如下 cmd << delimiter Here Doc ...

  3. linux shell 逻辑判断

    下面是linux常用逻辑判断 -b file            若文件存在且是一个块特殊文件,则为真 -c file            若文件存在且是一个字符特殊文件,则为真 -d file  ...

  4. linux shell的here document用法(cat EOF)

    什么是Here Document? Here Document 是在Linux Shell 中的一种特殊的重定向方式,它的基本的形式如下 cmd << delimiter   Here D ...

  5. linux shell里面nohup的用法

    为什么80%的码农都做不了架构师?>>>    百度了很多,但都不是官方的,按照linux命令中,一切可以--help的思想 我们就来 --help下. 其实linux命令不难学 只 ...

  6. linux shell数组与字典用法总结

    shell里面也有数组和所谓的字典,数组分为索引数组和关联数组(关联数组也就是在其他语言里面的字典,在数组和字典的操作方式基本一致). 1. 数组 1.1 创建数组 - 创建空数组 `names=() ...

  7. linux shell awk 中 printf 用法

    目录 printf 简介 printf 转义字符 printf 修饰符 printf 格式说明符 示例1 示例2 示例3 printf 简介 打印输出时,可能需要指定字段间的空格数,从而把列排整齐.在 ...

  8. linux shell 执行 几种方式区别 bash source .

    bash xx.sh 或者sh xxx.sh 脚本没有可执行权限或没有指定解析器,使用的方法. 会产生一个子shell来执行脚本,脚本执行完毕后再返回父shell,所以脚本里面的变量获取不了. /xx ...

  9. linux shell脚本 -f -z啥意思 侵删

    文件表达式 -e filename 如果 filename存在,则为真 -d filename 如果 filename为目录,则为真  -f filename 如果 filename为常规文件,则为真 ...

最新文章

  1. 牛逼的人没有不看书的(送书福利)
  2. IDEA热布署报错java.lang.IllegalStateException: Restarter has not been initialized
  3. jQuery EasyUI API 中文文档 - 树表格(TreeGrid)
  4. leetcode 740. Delete and Earn | 740. 删除并获得点数(暴力递归->傻缓存->DP)
  5. 动力强劲的星型发动机,为何不用在汽车上呢?
  6. poi中文api文档
  7. 数据结构之堆(Heap),堆的相关操作,用堆模拟优先级队列
  8. Flask-认识flask
  9. 【MATLAB】设定坐标的轴的范围
  10. Flash Cs4安装之后打不开(启动界面一闪而过)
  11. 安装python Scipy库记录
  12. 如果您已经熟悉K8s,现在不妨试试K9s
  13. 计算机应用1.2版,计算机应用基础(附光盘基础模块Windows7+Office2010第2版中等职业教育课程改革国家规划新教材)...
  14. openlayers 地图上加图标_OpenLayers学习笔记中级篇(四、地图图标操作)
  15. java拼图游戏(带文档资料)
  16. 猿创征文|我命由我,不由天
  17. ai绘画到底有大强?我开发了一款ai绘画(来看看)
  18. PCI与PCIe学习一——硬件篇
  19. 子查询(exists子查询)
  20. 也许我们喜欢数学,只是不喜欢数学课

热门文章

  1. XPath 读书笔记
  2. NFV — 安全策略
  3. DPDK — 安装部署(Ubuntu 18.04)
  4. Ironic 的 Rescue 救援模式实现流程
  5. 第三届中国云计算用户大会笔记和心得
  6. Python基本语法_函数属性 参数类型 偏函数的应用
  7. H3核心板开发笔记(一):编译及烧写方式
  8. Keil左侧显示行数
  9. 如果足够准的话,还有比体脂秤更好的身体数据采集器吗?
  10. puppet安装常遇见的问题