首页 » 信息技术 »

在Bash中判断变量是否set,是否长度为0

2019年2月17日 / 44次阅读
Bash

  • 打开支付宝,搜索“ 529018372 ”,领取专属红包!每日支付每日领。

如何在Bash中判断变量是否set,是否长度为0,请看文本的代码示例:

Bash判断变量是否set的代码:

[xinlin@ifos ~]$ unset gg
[xinlin@ifos ~]$ if [ -v gg ]; then echo 'gg is set'; else echo 'gg is not set'; fi
gg is not set
[xinlin@ifos ~]$ gg=
[xinlin@ifos ~]$ if [ -v gg ]; then echo 'gg is set'; else echo 'gg is not set'; fi
gg is set
[xinlin@ifos ~]$ gg=123
[xinlin@ifos ~]$ if [ -v gg ]; then echo 'gg is set'; else echo 'gg is not set'; fi
gg is set

需要注意的是,条件判断-v后面跟变量名。

Bash判断变量长度是否为0的代码:

[xinlin@ifos ~]$ unset gg
[xinlin@ifos ~]$ if [ -z $gg ]; then echo 'zero length'; else echo 'not zero length'; fi
zero length
[xinlin@ifos ~]$ gg=
[xinlin@ifos ~]$ if [ -z $gg ]; then echo 'zero length'; else echo 'not zero length'; fi
zero length
[xinlin@ifos ~]$ gg=123
[xinlin@ifos ~]$ if [ -z $gg} ]; then echo 'zero length'; else echo 'not zero length'; fi
not zero length
[xinlin@ifos ~]$ gg=''
[xinlin@ifos ~]$ if [ -z $gg ]; then echo 'zero length'; else echo 'not zero length'; fi
zero length

需要注意的是,条件判断-z后面跟的是string。

以上代码,gg是变量名,$gg是变量的值(没有加双引号,也没有大括号,如:${gg})。

记住:Bash里面的变量的值,都是字符串,Bash可以理解为只有唯一字符串类型的脚本语言,数值计算也是讲字符串转为数字,比较判断,一定要注意,是在做字符串比较,还是在做转换后的数值比较。

补充:

通过read命令生成的变量,就算没有值,也已经set:

[xinlin@ifos ~]$ unset jkk
[xinlin@ifos ~]$ echo -n 'input:';read jkk
input:  # 这里直接回车
[xinlin@ifos ~]$ if [ -v jkk ]; then echo 'jkk is set'; else echo 'jkk is not set'; fi
jkk is set
[xinlin@ifos ~]$ echo ${#jkk}
0

本文链接:https://www.maixj.net/ict/bash-set-length-20198

相关文章

留言区

《在Bash中判断变量是否set,是否长度为0》有1条留言

  • 麦新杰

    一般情况下,$var与${var}是没有区别的,但是用${ }会比较精确的界定变量名称的范围 []


前一篇:
后一篇:
推一篇:可靠正规,长期稳定,网络兼职项目!!

栏目精选

云上小悟,麦新杰的独立博客

Ctrl+D 收藏本页

栏目


©Copyright 麦新杰 Since 2014 云上小悟独立博客版权所有 备案号:苏ICP备14045477号-1。云上小悟网站部分内容来源于网络,转载目的是为了整合信息,收藏学习,服务大家,有些转载内容也难以判断是否有侵权问题,如果侵犯了您的权益,请及时联系站长,我会立即删除。

网站二维码
go to top