The
*
test*
and ```
```*
[*

(square bracket) commands (
44.20
)
can compare two numbers.
But it's an error if one of the numbers you test is stored in a shell variable
that's empty or doesn't exist.
For example, an empty *
num*
variable here will give you a ```
Syntax
error
```

:

if [ "$num" -gt 0 ]
then ...

To stop syntax errors, add a leading zero, like this:

if [ "0$num" -gt 0 ]
then ...

In that case, if ```
$num
```

is empty, the test will compare ```
0
```

to
```
0
```

.
If ```
$num
```

is ```
1
```

, the test will be true (because ```
01
```

is
greater than ```
0
```

)-and so on, just as it should be.