On 17 August 2015 at 01:42, D. Hugh Redelmeier <hugh@mimosa.com> wrote:
| From: Chris F.A. Johnson <chris@cfajohnson.com>

|     Best practice is not to use it at all.
|
|    <http://mywiki.wooledge.org/BashFAQ/105>

Sorry, late to this thread, but that page doesn't refer to -u
 
Thanks.  Useful.  I respectfully disagree with the conclusion.

| > "set -u" tells the shell to treat a reference to an undefined
| > parameter as an error.  It will make no difference in this script.
| > Until the script evolves more complexity.
|
|    There's no point to using set -u after a script has been debugged.

The sad fact is that I don't know when I've gotten rid of the last bug
in a script.

I don't know when I've gotten the last bug in *any* language (of course I've only been programming for 44 years, so maybe I'll get to that point sometime :-).

The only reason I can even *imagine* turning it off after "debugging" would be a claim for "efficiency".  And to suggest that "the overhead of having the bash interpreter check this" is material is misguided (see Hugh's quotes from Tony Hoare).  There are *very*, *very* few programs that need that kind of micro-efficiency, which is why I virtually never program in C or C++ anymore -- safety is so much more important.

../Dave