# Variable var not defined beforehand. Case 1
var='' # Equivalent to var="". # Case 2
var= # Case 3
unset var # Case 4
var='<some valid command>' # Case 5
- Variable
var
not defined beforehand var=''
(equivalent tovar=""
orvar=
)unset var
var='<some valid command>'
The last case (#5#4) is especially naughty because it will execute the command contained in the variable (which is why the condition evaluates to true for valid commands3, 4).