linux shell判断字符串为空的正确方法示例

help命令可以查看帮助

help test

Linux 下判断字符串是否为空,有一个大坑!

首先想到的两个参数:

-z :判断 string 是否是空串

-n :判断 string 是否是非空串

正确做法:

#!/bin/sh

STRING=

if [ -z "$STRING" ]; then
 echo "STRING is empty"
fi

if [ -n "$STRING" ]; then
 echo "STRING is not empty"
fi

root@james-desktop:~# ./zerostring.sh
STRING is empty

-------------------------------------------------------------------------

错误做法:

#!/bin/sh

STRING=

if [ -z $STRING ]; then
 echo "STRING is empty"
fi

if [ -n $STRING ]; then
 echo "STRING is not empty"
fi 

输出错误结果:

root@james-desktop:~# ./zerostring.sh
STRING is empty
STRING is not empty

这里,我们得出一个道理,在进行字符串比较时, 用引号将字符串界定起来 ,是一个非常好的习惯!

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。

(0)

相关推荐

  • Shell中判断字符串是否为数字的6种方法分享

    本篇文章主要介绍了"shell 判断字符串是否为数字",主要涉及到shell 判断字符串是否为数字方面的内容,对于shell 判断字符串是否为数字感兴趣的同学可以参考一下. #!/bin/bash ## 方法1 a=1234;echo "$a"|[ -n "`sed -n '/^[0-9][0-9]*$/p'`" ] && echo string a is numbers 第一个-n是shell的测试标志,对后面的串"`

  • shell字符串比较判断是否为数字

    二元比较操作符,比较变量或者比较数字.注意数字与字符串的区别. 整数比较 -eq 等于,如:if [ "$a" -eq "$b" ] -ne 不等于,如:if [ "$a" -ne "$b" ] -gt 大于,如:if [ "$a" -gt "$b" ] -ge 大于等于,如:if [ "$a" -ge "$b" ] -lt 小于,如:if [ &

  • Shell脚本计算字符串长度和判断字符串为空小技巧

    一些需要注意的脚本问题 计算字符串长度可用的三种方法: 复制代码 代码如下: echo "$str"|awk '{print length($0)}' expr length "$str" echo "$str"|wc -c 但是第三种得出的值会多1,可能是把结束符也计算在内了 判断字符串为空的方法有三种: 复制代码 代码如下: if [ "$str" =  "" ] if [ x"$str&qu

  • 用Shell判断字符串包含关系的方法小结

    前言 现在每次分析网站日志的时候都需要判断百度蜘蛛是不是真实的蜘蛛,nslookup之后需要判断结果中是否包含"baidu"字符串 以下给出一些shell中判断字符串包含的方法,来源程序员问答网站 stackoverflow 以及segmentfault. 方法一:利用grep查找 strA="long string" strB="string" result=$(echo $strA | grep "${strB}") if

  • linux shell判断字符串为空的正确方法示例

    help命令可以查看帮助 help test Linux 下判断字符串是否为空,有一个大坑! 首先想到的两个参数: -z :判断 string 是否是空串 -n :判断 string 是否是非空串 正确做法: #!/bin/sh STRING= if [ -z "$STRING" ]; then echo "STRING is empty" fi if [ -n "$STRING" ]; then echo "STRING is not

  • Shell判断字符串变量是否为空的方法实现

    目录 Bash Shell 判断一个变量是否为空 检查bash shell变量是否为空的另一个方式 您可以将 -z 选项传递给 if 命令或条件表达式.如果STRING的长度为0,variable ($var)为空.test命令用于检查文件类型并比较值.这个页面显示了如何使用test命令确定bash shell变量是否为空. 判断 bash 变量是否为空: 要点:变量两端用双引号括起来 如果bash变量未设置或设置为空字符串,则返回true: if [ -z "$var" ]; 另一个

  • iOS开发中判断字符串为空的方法

    前言: 判断字符串为空:看似简单的问题,有人会说不就使用[string isEqualToString:@""]或者更简单的string.text == nil就行了嘛.但是并没有考虑到其中存在的一些问题,例如当字符串中存在空格或者换行时或者当请求后台数据时得到的是进行JSON解析的时候, 如果解析出的NSDictionary中某个key对应的value为空, 则系统会把它处理为NSNull类的单例对象.这些情况下,上面的判断方法就不会起到作用. 具体实现: + (BOOL)isBla

  • shell 判断字符串是否存在数组中的实现示例

    语法格式: [[ "${array[@]}" =~ "字符串" ]] 示例: #!/bin/sh ##数组 array=( address base cart company store ) # $1 如果存在,输出 $1 exists,$1 如果不存在,输出 $1 not exists if [ "$1" != null ];then if [[ "${array[@]}" =~ "${1}" ]]; t

  • JAVA8妙用Optional解决判断Null为空的问题方法

    目录 引言 API介绍 1.Optional(T value),empty(),of(T value),ofNullable(T value) 2.orElse(T other),orElseGet(Supplier<? extends T> other)和orElseThrow(Supplier<? extends X> exceptionSupplier) 3.map(Function<? super T, ? extends U> mapper)和flatMap(

  • python通过自定义isnumber函数判断字符串是否为数字的方法

    本文实例讲述了python通过自定义isnumber函数判断字符串是否为数字的方法.分享给大家供大家参考.具体如下: ''' isnumeric.py test a numeric string s if it's usable for int(s) or float(s) ''' def isnumeric(s): '''returns True if string s is numeric''' return all(c in "0123456789.+-" for c in s)

  • python判断字符串是否纯数字的方法

    本文实例讲述了python判断字符串是否纯数字的方法.分享给大家供大家参考.具体如下: 判断的代码如下,通过异常判断不能区分前面带正负号的区别,正则表达式可以根据自己需要比较灵活的写,通过isdigit方法用来判断是否是纯数字,测试代码如下 复制代码 代码如下: #!/usr/bin/python # -*- coding: utf-8 -*- a = "1" b = "1.2" c = "a" #通过抛出异常 def is_num_by_exc

  • java判断字符串是否为数字的方法小结

    本文实例总结了java判断字符串是否为数字的方法.分享给大家供大家参考,具体如下: 方法一:用JAVA自带的函数 public static boolean isNumeric(String str){ for (int i = str.length();--i>=0;){ if (!Character.isDigit(str.charAt(i))){ return false; } } return true; } 方法二:用正则表达式 public static boolean isNume

  • java 判断字符串是否包含子串的方法

    java 判断字符串是否包含子串的方法 方法一: String str1 = "nihaoksdoksad "; String str2 = "ok "; int total = 0; for (String tmp = str1; tmp != null&&tmp.length()> =str2.length();){ if(tmp.indexOf(str2) == 0){ total ++; } tmp = tmp.substring(1)

随机推荐