On Fri, Sep 16, 2016 at 12:06:53PM -0700, Eric Pruitt wrote:
>       Bash 4.3:
>       ericpruitt@sinister:~$ VAR=
>       ericpruitt@sinister:~$ echo ${VAR/*/VAR was not empty}
>       

>       Bash 4.4:
>       ericpruitt@sinister:~$ VAR=
>       ericpruitt@sinister:~$ echo ${VAR/*/VAR was not empty}
>       VAR was not empty

Off hand I'd say the bash 4.4 behavior is correct.  * matches 0 or
more characters, so it should match an empty or undefined variable.

> Fix:
>       As a work-around, I have changed the expressions I'm using from
>       ${VAR/*/...} to ${VAR/?*/...}.

That, or ${VAR:+not empty} which is how I suggest testing for variable
set-and-not-empty-ness.

http://mywiki.wooledge.org/BashFAQ/083

Reply via email to