前言

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 脚本中判断字符串非空相关推荐

  1. 【2021-03-20】【Mybatis】Mybatis 判断字符串非空和空串 报错, Encountered “ <IDENT> “AND ““ at line 1

    [Mybatis]Mybatis 判断字符串非空和空串 报错, Encountered " "AND "" at line 1 1.Mybatis.xml 代码 ...

  2. linux shell脚本字符串连接符,学习Linux shell脚本中连接字符串的方法

    这篇文章主要介绍了Linux shell脚本中连接字符串的方法,如果想要在变量后面添加一个字符,可以用一下方法: 代码如下: $value1=home $value2=${value1}"= ...

  3. Shell脚本中计算字符串长度的5种方法

    这篇文章主要介绍了Shell脚本中计算字符串长度的5种方法,来自于个人Shell脚本长期的开发经验,需要的朋友可以参考下 有时在Linux操作系统中需要计算某个字符串的长度,通过查询资料整理了下目前S ...

  4. shell脚本中判断大于、小于、等于、不等于的符号

    shell脚本中判断大于.小于.等于.不等于的符号 在shell中有时候会用到对数字进行判断的场景,尤其在写脚本判断参数的时候,以下有几个命令需要记住 大于 -gt (greater than) 小于 ...

  5. shell脚本中判断上一条python命令执行情况

    shell脚本中判断python命令执行结果 python脚本main.py import sys def main():try:"执行相关操作"sys.exit(0)except ...

  6. js中对于字符串非空判断的总结

    //用户名非空验证 1 function checkUserName(){ 2 var name = document.myform.txtUser; //name 为 txtUser 的文本框 3 ...

  7. shell脚本之判断字符串是否相等

    0 总结 Get to the points first. The article comes from LawsonAbs! updata on 20200505:修改相关格式 1.问题 使用she ...

  8. linux 脚本 变量为空,Shell脚本中判断输入变量或者参数是否为空的方法

    1.判断变量 复制代码 代码如下: read -p "input a word :" word if  [ ! -n "$word" ] ;then echo ...

  9. linux shell 中判断字符串为空的正确方法

    help命令可以查看帮助 help test 正确做法: #!/bin/sh STRING= if [ -z "$STRING" ]; then     echo "ST ...

最新文章

  1. TCP/IP协议分析
  2. 行人搜索也可以Anchor-Free?这篇CVPR 2021论文给出了答案
  3. 怎样只接受固定长度数组为参数 数组形参
  4. 非常可乐(杭州电子科技大学第四届大学生程序设计竞赛)(九度2013年教程87题)
  5. 数据结构——绪论以及线性表的顺序表示
  6. 寻找数组中出现次数超过一半的数字
  7. RabbitMQ消息确认以及return机制
  8. 电脑保密检查清除痕迹_保密安全|2020年国家安全与保密宣传周来啦!
  9. java中md5加密和解密_如何在java中实现md5加密和解密
  10. [转载] AUML——Supplement Documents
  11. FailSafe双机方案
  12. Python——付费/版权歌曲下载
  13. 第五章 站在巨人的肩膀上
  14. Shader GrabPass应用实例——实现扭曲效果
  15. 内存卡被格式化怎么恢复
  16. APISpace 通知短信API
  17. Mac系统自带中文输入法英文标点
  18. 计算机二级c语言程序设计改错,2017年计算机二级C语言上机改错题考点总结
  19. 以TSPITR方式恢复表空间数据一例
  20. jquery 后台数据到前台展示

热门文章

  1. 爱莫科技加入中国ECR委员会助力FMCG产业更好更快发展
  2. 只需 5 分钟,手把手教会你在 Docker 和 Kubernetes 中进行应用发布!
  3. 微信微网站的服务器ip地址查询,微信开发之(三)获取微信服务器IP地址
  4. 阿里云 MQ和MNS的区别
  5. python高维数组的提取
  6. js中字符串和数组互相转换
  7. 法国ICD|开启我人生辉煌的下一站
  8. 阿里数据库十年变迁,那些你不知道的二三事
  9. Android 腾讯 Bugly 热修复
  10. 找一个程序员男/女朋友 程序员怎么可能没对象