Shell 脚本中判断字符串非空
前言
Shell 脚本中经常用到字符串,对字符串是否为空的判断很关键。
正文
在 Shell 中利用 -n
来判断字符串是否非空。
例子:
if [[ str1 = str2 ]] # 当字符串 str1 和 str2 有相同内容、长度时为真if [[ str1 != str2 ]] # 当字符串 str1 和 str2 不等时为真if [[ -n "str1" ]] # 当字符串 str1 的长度大于 0(非空)时为真 if [[ -z "str1" ]] # 当字符串 str1 的长度为 0(空)时为真 if [[ str1 ]] # 当字符串 str1 为非空时为真
注意
错误用法:
str1=$*if [[ -n $str1 ]];thenprint "with str1"
elseprint "without str1"
fi
这种情况下不管传不传参数,总会进入 if 里面,因为不加 ""
时该 if 语句等效于 if [ -n ]
,shell 会把它当成 if [ str1 ]
来处理,-n
这个字符串不为空,所以会进入 if 里面。
正确用法:
需要在 $str1
上加入双引号,即 "$str1"
。
str1=$*
if [[ -n "$str1" ]];thenprint "with str1"
elseprint "without str1"
fi
额外内容
在 Shell 脚本中如果有 rm -rf ${path}
这种操作,尽量在执行前先判断变量 path
不为空,如果 path
为空,等同于执行 rm -rf /
,除此之外,在 Bash 的变量扩展语法中,可以用 rm -rf ${path:?ERROR}/*
的形式判断变量是否定义或为空,当变量未定义或为空时自动停止执行脚本,这样可以避免执行全局删除操作。
Shell 脚本中判断字符串非空相关推荐
- 【2021-03-20】【Mybatis】Mybatis 判断字符串非空和空串 报错, Encountered “ <IDENT> “AND ““ at line 1
[Mybatis]Mybatis 判断字符串非空和空串 报错, Encountered " "AND "" at line 1 1.Mybatis.xml 代码 ...
- linux shell脚本字符串连接符,学习Linux shell脚本中连接字符串的方法
这篇文章主要介绍了Linux shell脚本中连接字符串的方法,如果想要在变量后面添加一个字符,可以用一下方法: 代码如下: $value1=home $value2=${value1}"= ...
- Shell脚本中计算字符串长度的5种方法
这篇文章主要介绍了Shell脚本中计算字符串长度的5种方法,来自于个人Shell脚本长期的开发经验,需要的朋友可以参考下 有时在Linux操作系统中需要计算某个字符串的长度,通过查询资料整理了下目前S ...
- shell脚本中判断大于、小于、等于、不等于的符号
shell脚本中判断大于.小于.等于.不等于的符号 在shell中有时候会用到对数字进行判断的场景,尤其在写脚本判断参数的时候,以下有几个命令需要记住 大于 -gt (greater than) 小于 ...
- shell脚本中判断上一条python命令执行情况
shell脚本中判断python命令执行结果 python脚本main.py import sys def main():try:"执行相关操作"sys.exit(0)except ...
- js中对于字符串非空判断的总结
//用户名非空验证 1 function checkUserName(){ 2 var name = document.myform.txtUser; //name 为 txtUser 的文本框 3 ...
- shell脚本之判断字符串是否相等
0 总结 Get to the points first. The article comes from LawsonAbs! updata on 20200505:修改相关格式 1.问题 使用she ...
- linux 脚本 变量为空,Shell脚本中判断输入变量或者参数是否为空的方法
1.判断变量 复制代码 代码如下: read -p "input a word :" word if [ ! -n "$word" ] ;then echo ...
- linux shell 中判断字符串为空的正确方法
help命令可以查看帮助 help test 正确做法: #!/bin/sh STRING= if [ -z "$STRING" ]; then echo "ST ...
最新文章
- TCP/IP协议分析
- 行人搜索也可以Anchor-Free?这篇CVPR 2021论文给出了答案
- 怎样只接受固定长度数组为参数 数组形参
- 非常可乐(杭州电子科技大学第四届大学生程序设计竞赛)(九度2013年教程87题)
- 数据结构——绪论以及线性表的顺序表示
- 寻找数组中出现次数超过一半的数字
- RabbitMQ消息确认以及return机制
- 电脑保密检查清除痕迹_保密安全|2020年国家安全与保密宣传周来啦!
- java中md5加密和解密_如何在java中实现md5加密和解密
- [转载] AUML——Supplement Documents
- FailSafe双机方案
- Python——付费/版权歌曲下载
- 第五章 站在巨人的肩膀上
- Shader GrabPass应用实例——实现扭曲效果
- 内存卡被格式化怎么恢复
- APISpace 通知短信API
- Mac系统自带中文输入法英文标点
- 计算机二级c语言程序设计改错,2017年计算机二级C语言上机改错题考点总结
- 以TSPITR方式恢复表空间数据一例
- jquery 后台数据到前台展示