Looks like your depth variable is unset. This means that the expression [ $depth -eq $zero ] becomes [ -eq 0 ] after bash substitutes the values of the variables into the expression. The problem here is that the -eq operator is incorrectly used as an operator with only one argument (the zero), but it requires two arguments. That is why you get the unary operator error message.
EDIT: As Doktor J mentioned in his comment to this answer, a safe way to avoid problems with unset variables in checks is to enclose the variables in "". See his comment for the explanation.
if [ "$depth" -eq "0" ]; then
echo "false";
exit;
fi
An unset variable used with the [ command appears empty to bash. You can verify this using the below tests which all evaluate to true because xyz is either empty or unset:
if [ -z ] ; then echo "true"; else echo "false"; fi
xyz=""; if [ -z "$xyz" ] ; then echo "true"; else echo "false"; fi
unset xyz; if [ -z "$xyz" ] ; then echo "true"; else echo "false"; fi