当前位置: 技术问答>linux和unix
提取变量子串的问题
来源: 互联网 发布时间:2016-05-15
本文导语: 在终端下分别执行 a=abcde;if [ -z ${a:0:0} ];then echo true; fi 和 a=abcde;if [ -n ${a:0:0} ];then echo true; fi 我认为这两个结果应该是互斥的,可执行后为什么都能打印出true呢? | if [ -z ];then echo true; fi if [ -n ...
在终端下分别执行
和
我认为这两个结果应该是互斥的,可执行后为什么都能打印出true呢?
a=abcde;if [ -z ${a:0:0} ];then echo true; fi
和
a=abcde;if [ -n ${a:0:0} ];then echo true; fi
我认为这两个结果应该是互斥的,可执行后为什么都能打印出true呢?
|
if [ -z ];then echo true; fi
if [ -n ];then echo true; fi
lz 考虑一下这两句,与上面的是等价的
要判断字符串的长度,应该加引号,防止出现空串而出问题
a=abcde;if [ -z "${a:0:0}" ];then echo true; fi
a=abcde;if [ -n "${a:0:0}" ];then echo true; fi
a=abcde;if [[ -z "${a:0:0}" ]];then echo true; fi
a=abcde;if [[ -n "${a:0:0}" ]];then echo true; fi
|
a=abcde;if [[ -z ${a:0:0} ]];then echo true; fi
a=abcde;if [[ -n ${a:0:0} ]];then echo true; fi