文档章节

在shell中如何判断一个变量是否为空

j
 jims
发布于 2016/08/30 16:23
字数 294
阅读 72
收藏 0

在shell中如何判断一个变量是否为空
判断一个脚本中的变量是否为空,我写了一个这样的shell脚本:

 

C代码 

 收藏代码

  1. #!/bin/sh  
  2. #filename: test.sh  
  3. para1=  
  4. if [ ! -n $para1 ]; then  
  5.   echo "IS NULL"  
  6. else  
  7.   echo "NOT NULL"  
  8. fi    

 

 

然后把该脚本:test.sh通过chmod +x 改为可以执行的脚本,执行后输出的结果为: NOT NULL,很是奇怪,最后,通过查询一些资料发现,可以通过如下方式判断一个shell变量是否为空:

 

 

1. 变量通过" "引号引起来

 

如下所示:,可以得到结果为 IS NULL.

 

C代码 

 收藏代码

  1. #!/bin/sh  
  2. para1=  
  3. if [ ! -n "$para1" ]; then  
  4.   echo "IS NULL"  
  5. else  
  6.   echo "NOT NULL"  
  7. fi    

 

 

2. 直接通过变量判断

 

如下所示:得到的结果为: IS NULL

 

C代码 

 收藏代码

  1. #!/bin/sh  
  2. para1=  
  3. if [ ! $para1 ]; then  
  4.   echo "IS NULL"  
  5. else  
  6.   echo "NOT NULL"  
  7. fi    

 

 

3. 使用test判断

 

得到的结果就是: dmin is not set! 

 

C代码 

 收藏代码

  1. #!/bin/sh  
  2. dmin=  
  3. if test -z "$dmin"  
  4. then  
  5.   echo "dmin is not set!"  
  6. else    
  7.   echo "dmin is set !"  
  8. fi   

 

 

4. 使用""判断

 

C代码 

 收藏代码

  1. #!/bin/sh   
  2. dmin=  
  3. if [ "$dmin" = "" ]  
  4. then  
  5.   echo "dmin is not set!"  
  6. else    
  7.   echo "dmin is set !"  
  8. fi   

 

来源:http://www.kaiyuanba.cn/html/1/131/137/4106.htm

本文转载自:http://www.kaiyuanba.cn/html/1/131/137/4106.htm

j
粉丝 4
博文 172
码字总数 30033
作品 0
合肥
私信 提问
shell脚本中的逻辑判断文件目录属性判断 if特殊用法 case判断

shell脚本中的逻辑判断 格式1:if 条件 ; then 语句; fi 格式2:if 条件; then 语句; else 语句; fi 格式3:if …; then … ;elif …; then …; else …; fi 逻辑判断表达式:if [ $a -gt $...

lyy549745
2018/07/12
0
0
shell脚本中的逻辑判断,文件目录属性判断,if特殊用法,case语句

笔记内容: 20.5 shell脚本中的逻辑判断 20.6 文件目录属性判断 20.7 if特殊用法 20.8/20.9 case判断 笔记日期:2017-11-22 20.5 shell脚本中的逻辑判断 在所有的编程语言中都会有if语句来进...

ZeroOne01
2017/11/22
0
0
day07:shell脚本中的逻辑判断(文件目录属性判断、if判断、case用法)

1、shell脚本中的逻辑判断语法: 格式1:if 条件 ; then 语句 ; fi 格式2:if 条件 ; then 语句; else 语句;fi 格式3:if 条件; then 语句;elif 条件;then 语句;else 语句;fi 逻辑...

芬野de博客
2018/12/28
0
0
70:shell脚本中的逻辑判断(文件目录属性判断、if判断、case用法)

1、shell脚本中的逻辑判断语法: 格式1:if 条件 ; then 语句 ; fi 格式2:if 条件 ; then 语句; else 语句;fi 格式3:if 条件; then 语句;elif 条件;then 语句;else 语句;fi 逻辑...

芬野de博客
2018/09/26
0
0
小白学习shell编程

linux中默认的shell有一下几种: 1.bash(发行版默认) 2.csh 3.ksh 4.tcsh shell是一种解释性的脚本语言 脚本语言还有 python(比较流行) perl php等等 1.变量 bash变量的类型: 1.环境变量:作用...

zzzzzga
2015/10/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Redis缓存穿透、缓存雪崩和缓存击穿

Redis缓存穿透、缓存雪崩 缓存雪崩,是指在某一个时间段,缓存集中过期失效。 产生雪崩的原因之一,比如在写本文的时候,马上就要到双十二零点,很快就会迎来一波抢购,这波商品时间比较集中...

architect刘源源
16分钟前
1
1
ArrayList源码分析

一、核心变量 // 序列化ID private static final long serialVersionUID = 8683452581122892189L; // 默认初始化容量 private static final int DEFAULT_CAPACITY = 10; ......

星爵22
25分钟前
1
0
++a a++的再次理解

public class Test { //// public static void main(String[] args) throws InterruptedException { // TODO Auto-generated method stub int a=1; int b=2; int c; int d; c=......

南桥北木
25分钟前
0
0
整合Spring和SpringMVC

1.Spring容器和SpringMVC容器的关系 Spring容器是一个父容器,SpringMVC容器是一个子容器,它继承自Spring容器。因此,在SpringMVC容器中,可以访问到Spring容器中定义的Bean,而在Spring容器...

薛小二
26分钟前
0
0
递归实现后序遍历二叉树

问题描述 从键盘接受输入先序序列,以二叉链表作为存储结构,建立二叉树(以先序来建立)并对其进行后序遍历,然后将遍历结果打印输出。要求采用递归方法实现。 解题思路 递归实现 程序实现 ...

niithub
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部