On Fri, Apr 5, 2024 at 3:51 AM Patrick Steinhardt <ps@xxxxxx> wrote: > In `test_expect_perms()` we assign the output of a command to a variable > declared via `local`. To assert that the command is actually successful > we also chain it with `&&`. This construct is seemingly not portable and > may fail with "local: 1: bad variable name". > > Split up the variable declaration and assignment to fix this. Under what configuration, circumstances, conditions did you encounter this problem? I ask because this isn't the only such case in the test suite, as shown by: git grep -nP 'local ..*=\$\(..*&&' -- t What makes this case distinct from the others? Including such information would improve the commit message and help future readers. > Signed-off-by: Patrick Steinhardt <ps@xxxxxx> > --- > diff --git a/t/t0610-reftable-basics.sh b/t/t0610-reftable-basics.sh > @@ -80,8 +80,9 @@ test_expect_success 'init: reinitializing reftable with files backend fails' ' > test_expect_perms () { > local perms="$1" > local file="$2" > - local actual=$(ls -l "$file") && > + local actual > > + actual=$(ls -l "$file") &&