- 判断长度不为0 or 为0
if [ -n “$a” ]
if [ -z $a ] - 判断为空
if [ $a ] - 判断等于空字符
if [ “$a” = “” ]
某些情况我们取到的变量中隐含了特殊字符
通过要查看取的变量的长度${#a}
[root@wiphone huangbq]# echo $HSTP
0x01ff04
[root@wiphone huangbq]# echo ${#HSTP}
9
wc的方法查看
[root@wiphone huangbq]# echo $HSTP |wc -c
10
[root@wiphone huangbq]# echo -n $HSTP |wc -c
9
[root@wiphone huangbq]# echo -n $HSTP |wc -L
8
如何查看包含的特殊字符
[root@wiphone huangbq]# echo "$HSTP" > specialtrt.txt
[root@wiphone huangbq]# cat -A specialtrt.txt
0x01ff04^M$
原因
Unix体系里,每行结尾只有“<换行>”,即“\n”;
Windows体系里面,每行结尾是“<换行><回 车>”,即“\n\r”。
一个直接结果是,Unix体系下的文件在Windows里打开的话,所有文字会变成一行;
而Windows里的文件在Unix下打开的话,在每行的结尾可能会多出一个^M符号。
解决方法
1.变量获取时去除特殊字符
tr -d ‘\r’
2.对文件进行处理
dos2unxi