What "set +u" does?

Dear Friends,
I couldn't able to find what "set +u" does.
Please tell me what is the significance of this command.

Thanks in advance,
swamymns

From the Ksh manpage:

     -u    Treats unset parameters as an error when substituting.

      Using \+ rather than - causes these flags to be turned off.

The + turns it off.

Edit: Sorry,
just saw it was already answered.

Using "set -u" can be nasty. It's a way to force you to declare all your variables before using them, which is good programming practice. Referencing any unset variable will force the script to exit.

Unfortuantely this means you cannot even test if a variable is set without making the shell blow up. In these cases I usually see some piece of code framed by "set +u" and "set -u" again, which is ugly. If you have "set -u" active, then you should reference any external variables of unknown state like this:

VALUE=${unknownvar:-}

The shell uses the above syntax to return a default value when "unknownvar" is not set or is null. Since the default value is omited, it returns null but does NOT cause the shell to exit.