shell中判断空字符串和有趣的空字符串(延伸篇)

简介: Introduction 作为上一篇 shell中判断空字符串和有趣的空字符串 的延伸补充经验之谈字符串判断或者比较个人建议或者喜欢用 "$param"x = "x" 来判断字符串是否为空建议加上双引号 "$param"使用= 、!= 、-n 、-z 等执行判断 = 判断两个字符是否相等,相等包括字符创的内容和长度!= 判断两个字符是否

Introduction

作为上一篇 shell中判断空字符串和有趣的空字符串 的延伸补充


经验之谈

字符串判断或者比较

个人建议或者喜欢用 "$param"x = "x" 来判断字符串是否为空

  • 建议加上双引号 "$param"
  • 使用= 、!= 、-n 、-z 等执行判断
    • = 判断两个字符是否相等,相等包括字符创的内容和长度
    • != 判断两个字符是否不相等
    • -n 字符串的长度大于0(非空字符串)当成 not zero记忆
    • -z 字符串的长度等于0(空字符串),当成 zero记忆

附加:

字符串`param`的长度 `${#param}`

Shell命令行参数说明


数字的比较

使用如下操作符来比较,不用加双引号 "$param"

  • -eq 两个数字相等
  • -ne 两个数字不相等
  • -lt 两个数字前者小于后者
  • -le 两个数字前者小于等于后者
  • -gt 两个数字前者大于后者
  • -ge 两个数字前者大于等于后者

文件的比较

  • -r file 用户可读为真
  • -w file 用户可写为真
  • -x file 用户可执行为真
  • -f file 文件为正规文件为真
  • -d file  文件为目录为真
  • -c file  文件为字符特殊文件为真
  • -b file  文件为块特殊文件为真
  • -s file  文件大小非0时为真
  • -t file   当文件描述符(默认为1)指定的设备为终端时为真

说明:

这里我们最常用的是 
`-f` 判断文件是否存在
`-d` 判断目录是否存在
`-s` 文件是不是非空

简书地址:shell中判断空字符串和有趣的空字符串(延伸篇)



公众号: DailyJobOps

    公众号: DailyJobOps    

目录
相关文章
|
SQL Shell Linux
LInux shell 编写记录-日期9月判断中遇到shell默认八进制计算
很高兴能开始是新的知识点,我在使用sh 运行hive脚本以后才发现不知不觉的时候我已经开始使用shell了。。。
130 0
LInux shell 编写记录-日期9月判断中遇到shell默认八进制计算
shell 命令返回值判断
shell 命令返回值判断
|
Shell Linux
Shell运算符、$((运算式))” 或 “$[运算式]、expr方法、条件判断、test condition、[ condition ]、两个整数之间比较、按照文件权限进行判断、按照文件类型进行判断
多条件判断(&& 表示前一条命令执行成功时,才执行后一条命令,|| 表示上一 条命令执行失败后,才执行下一条命令)、-eq 等于(equal) -ne 不等于(not equal)-lt 小于(less than) -le 小于等于(less equal)-gt 大于(greater than) -ge 大于等于(greater equal)注:如果是字符串之间的比较 ,用等号“=”判断相等;用“!=”判断不等。 -r 有读的权限(read)-w 有写的权限(write)-x 有执行的权限(execute)
151 1
Shell运算符、$((运算式))” 或 “$[运算式]、expr方法、条件判断、test condition、[ condition ]、两个整数之间比较、按照文件权限进行判断、按照文件类型进行判断
|
Java Shell Linux
Shell流程控制(重点)、if 判断、case 语句、let用法、for 循环中有for (( 初始值;循环控制条件;变量变化 ))和for 变量 in 值 1 值 2 值 3… 、while 循环
“{}”在linux shell里面表示生成序列、在for循环中$*和$@的区别、注意事项: ①[ 条件判断式 ],中括号和条件判断式之间必须有空格②if 后要有空格、在中括号里面的话就不用&&(||)而是用-a(-and)(和-o(-or))、用逻辑与&&逻辑或||连接(单分支)(1)case 行尾必须为单词“in”,每一个模式匹配必须以右括号“)”结束。(2)双分号“;;”表示命令序列结束,相当于 java 中的 break。 (3)最后的“*)”表示默认模式,相当于 java 中的 default。当
214 1
Shell流程控制(重点)、if 判断、case 语句、let用法、for 循环中有for (( 初始值;循环控制条件;变量变化 ))和for 变量 in 值 1 值 2 值 3… 、while 循环
|
Shell Linux
LINUX SHELL判断两个字串包含关系的办法
LINUX SHELL判断两个字串包含关系的办法
97 0
|
Shell Linux
LINUX SHELL判断文件、目录是否存在
LINUX SHELL判断文件、目录是否存在
100 0
|
Shell
【shell】判断语句、循环语句
文章目录 前言 一、内容 二、判断语句 2.1 if 判断
99 0
【shell】判断语句、循环语句
|
Java Shell Linux
Shell流程控制(重点)、if 判断、case 语句、let用法、for 循环中有for (( 初始值;循环控制条件;变量变化 ))和for 变量 in 值 1 值 2 值 3… 、while 循环
Shell流程控制(重点)、if 判断、case 语句、let用法、for 循环中有for (( 初始值;循环控制条件;变量变化 ))和for 变量 in 值 1 值 2 值 3… 、while 循环
Shell流程控制(重点)、if 判断、case 语句、let用法、for 循环中有for (( 初始值;循环控制条件;变量变化 ))和for 变量 in 值 1 值 2 值 3… 、while 循环
|
Shell Linux
Shell运算符、$((运算式))” 或 “$[运算式]、expr方法、条件判断、test condition、[ condition ]、两个整数之间比较、按照文件权限进行判断、按照文件类型进行判断
Shell运算符、$((运算式))” 或 “$[运算式]、expr方法、条件判断、test condition、[ condition ]、两个整数之间比较、按照文件权限进行判断、按照文件类型进行判断
Shell运算符、$((运算式))” 或 “$[运算式]、expr方法、条件判断、test condition、[ condition ]、两个整数之间比较、按照文件权限进行判断、按照文件类型进行判断