On Tue, Jul 23, 2024 at 5:26 AM Phillip Wood <phillip.wood123@xxxxxxxxx> wrote: > On 22/07/2024 16:09, Phillip Wood wrote: > > On 22/07/2024 07:59, Eric Sunshine wrote: > >> Unlike "VAR=val cmd" one-shot environment variable assignments which > >> exist only for the invocation of 'cmd', those assigned by "VAR=val > >> shell-func" exist within the running shell and continue to do so until > >> the process exits (or are explicitly unset). > > Having seen the parallel discussion about the behavior of hash this > construct is non-portable because the behavior differs between shells so > perhaps the commit message could say something like > > Unlike "VAR=val cmd" one-shot environment variable assignments which > only exist for the invocation of external command "cmd", the behavior of > "VAR=val func" where "func" is a shell function or builtin command > varies between shells and so we should not use it in our test suite. Indeed, given all the subsequent discussion, it is now apparent that multiple undesirable behaviors have been experienced, not just the one mentioned by this commit message, and that POSIX states that the behavior is undefined.