Configuration Information [Automatically generated, do not change]:
Machine: x86_64
OS: darwin20.6.0
Compiler: clang
Compilation CFLAGS: -DSSH_SOURCE_BASHRC
uname output: Darwin San-Francisco-iMac.local 20.6.0 Darwin Kernel Version 20.6.0: Thu Jul  6 22:12:47 PDT 2023; root:xnu-7195.141.49.702.12~1/RELEASE_X86_$
Machine Type: x86_64-apple-darwin20.6.0

Bash Version: 5.2
Patch Level: 15
Release Status: release

Description:
        One of my Bash scripts started to fail all of a sudden and I was able to narrow down this problem to Bash upgrade itself (via Homebrew on a Mac): from 5.1.16 to 5.2.15. It looks to me pretty serious: a lot of scripts might be potentially affected.

Repeat-By:

# Bash 5.1.16: success
# Bash 5.2.15: syntax error near unexpected token `}'
var2=$(time { echo foo; echo bar; })
echo -e "\nvar2=\`$var2\`"

# Bash 5.1.16: success
# Bash 5.2.15: syntax error near unexpected token `echo'
var3=$(time (echo foo; echo bar))
echo -e "\nvar3=\`$var3\`"

Fix:
       The scripts have to change to work around this problem: to refactor out an inner command group. It might or might not be feasible. For example, the fix for the script above:

time var4=$(echo foo; echo bar)
echo -e "\nvar4=\`$var4\`"

--
🇺🇸 Dima Korobskiy 🇺🇦


Reply via email to