스크립트 소스코드 질문 입니다

아래 스크립트 파일의 내용은 interface가 up됬을 시 자동으로 route table을 작성하는 것입니다.

그런데 계속
if [ -z $DEVICE_IFACE ]; then
echo "2"
exit 0
이부분에서 걸려 더 이상 진행 되지 않습니다.

-z의 의미가 무엇 이죠?

env > /etc/network/if_up_env

if [ "$IFACE" = lo -o "$MODE" != start ]; then
echo "1"
exit 0
fi

if [ -z $DEVICE_IFACE ]; then
echo "2"
exit 0
fi

FIRST, make a table-alias

if [ grep $DEVICE_IFACE /etc/iproute2/rt_tables | wc -l -eq 0 ]; then
NUM=cat /etc/iproute2/rt_tables | wc -l
echo "$NUM $DEVICE_IFACE" >> /etc/iproute2/rt_tables
fi

if [ $DHCP4_IP_ADDRESS ]; then
SUBNET=echo $IP4_ADDRESS_0 | cut -d \ -f 1 | cut -d / -f 2
ip route add table $DEVICE_IFACE to $DHCP4_NETWORK_NUMBER/$SUBNET dev $DEVICE_IFACE scope link
ip route add table $DEVICE_IFACE default via $DHCP4_ROUTERS dev $DEVICE_IFACE
ip rule add from $DHCP4_IP_ADDRESS table $DEVICE_IFACE
else

PPP-interface

IPADDR=echo $IP4_ADDRESS_0 | cut -d \ -f 1 | cut -d / -f 1
ip route add table $DEVICE_IFACE default dev $DEVICE_IP_IFACE scope link
ip rule add from $IPADDR table $DEVICE_IFACE
fi

[quote="creatives":19s1uf1u]-z의 의미가 무엇 이죠?[/quote:19s1uf1u]
-z 값
값이 비어있을때 참, 존재할떄 거짓으로 판단합니다.
그리고, 값을 콰우팅해주지 않으면 $VAL이 아무값도 없을떄 [ -z ]가 되므로 문법오류가 발생합니다.
[ -z "$VAL" ]식으로 써주면 오류가 발생하지 않습니다.