Gerald Pfeifer <[email protected]> writes: > Hi Arsen, > > On Fri, 14 Apr 2023, Arsen Arsenović wrote: >>> Did you intentionally not implement the following part of my suggestion >>> >>> if [ x${MAKEINFO}x = xx ]; then >>> : >> > that is, allowing to override from the command-line (or crontab)? >> (answering both the questions) >> >> This := operator is a handy "default assign" operator. It's a bit of an >> oddity of the POSIX shell, but it works well. The line: >> >> : "${foo:=bar}" >> >> is a convenient way of spelling "if foo is unset or null, set it to >> bar". the initial ':' there serves to discard the result of this >> evaluation (so that only its side effect of updating foo if necessary is >> kept) > > I understand, just am wondering whether and why the : is required? I > don't think we are using this construct anywhere else?
Without them, this would happen:
~$ "${foo:=foo}"
bash: foo: command not found
~ 127 $ unset foo
~$ echo "${foo:=foo}"
foo
~$
> (I was aware of the ${foo:=bar} syntax, just caught up by you pushing
> that part of the logic to the lowest level whereas I had it at the top
> level. That's purely on me.)
>
> Please go ahead and push this (or a variant without the : commands) and
> I'll then pick it up from there.
Thank you! Hopefully we get this just in time for 13 :)
Pushed.
--
Arsen Arsenović
signature.asc
Description: PGP signature
