Newbie here. I'm reading a shell script for adding a progress bar to certain processes (found here). I'm having trouble understanding this (optional) line:#BAR_EXT=${BAR_EXT-}The comment says that this will add an extension to each file, and maybe I just need to read further, but I'm not familiar with that use of the - operator.I know about this kind of substitution, as found in the Bash Reference Manual:${parameter:-word}I also know that the above will replace a null value for parameter with word, whereas ${parameter-word} will not. (At least, I think I know that.)But with nothing specified after the - here, I'm not sure what's going on. Will this simply replace parameter with a null value? Generally, I would accept that as a working guess and just keep reading, but with the comment mentioning adding extensions to files, I'm confused.Maybe a stupid question, but my Google-fu is weak on this one.
Bourne shell: trailing `-` operator in parameter substitution
bourne shell
Does the script contain the command set -u?That meansTreat unset variables and parameters  other than the special parameters @ and *  as an error when performing parameter expansion.  If expansion is attempted on an unset variable or parameter,  the shell prints an error message,  and, if not interactive, exits with a non-zero status.In other words, if $BAR_EXT is not set, something likeBAR_FILE=$BAR_FILE$BAR_EXTwould fail. The commandBAR_EXT=${BAR_EXT-}will explicitly set $BAR_EXT to an empty stringif it is not defined at all, thereby avoiding such an error.