Skip to content

Latest commit

 

History

History
50 lines (34 loc) · 876 Bytes

check_variable_empty.md

File metadata and controls

50 lines (34 loc) · 876 Bytes

这个错误我也犯过

#!/bin/sh

STRING=

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

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

注意,一定要在变量上加上"",表示字符串,然后进行判断。-z表示空字符串,-n表示非空字符串。

如果忘记加上"",则遇到这个逻辑的时候会提示错误

line 71: [: too many arguments

如果字符串为空,在没有加""会导致误判断,导致-z-n都成立:

#!/bin/sh

STRING=

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

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

执行是错误的结果:

STRING is empty 
STRING is not empty

参考