On Wed, Sep 27, 2017 at 05:50:16AM +0200, Martijn Dekker wrote:
> Test script:
> 
> set "  abc  " " def  ghi " "jkl "
> unset -v IFS var
> var=${var-$*}/${var-$*}
> printf '[%s]\n' "$var"

wooledg:~$ set "  abc  " " def  ghi " "jkl "
wooledg:~$ unset IFS

wooledg:~$ var="$*"; declare -p var
declare -- var="  abc    def  ghi  jkl "

wooledg:~$ unset var; var=${var-$*}; declare -p var
declare -- var="abc def ghi jkl"

wooledg:~$ unset var; var=${var-"$*"}; declare -p var
declare -- var="  abc    def  ghi  jkl "

I'm just going to chalk this up as yet another example of unquoted $*
or $@ being Completely Wrong.

Never use unquoted $* or $@.  It triggers all kinds of bugs (or
"differences in behavior across shells"), and has no conceivable
justification.  Always use "$@" or "$*".

Reply via email to