判断shell变量是否空字符串
这个错误我也犯过
#!/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参考
Last updated
Was this helpful?