Configuration Information [Automatically generated, do not change]: Machine: powerpc64le OS: linux-gnu Compiler: gcc Compilation CFLAGS: -g -O2 uname output: Linux aion 6.8.1 #26 SMP PREEMPT Fri Mar 15 23:18:26 EDT 2024 ppc64le POWER9, altivec supported PowerNV C1P9S01 REV 1.02 GNU/Linux Machine Type: powerpc64le-unknown-linux-gnu
Bash Version: 5.2 Patch Level: 21 Release Status: release Description: The POSIX shell grammar specifies that a newline may optionally appear before the in keyword of a for loop. Bash does handle this OK in the following example: % cat >test1.sh <<'EOF' for x in x do echo $x done EOF % bash test1.sh x However, if the exact same loop is placed within the body of a case statement, current versions of bash exit with a syntax error: % cat >test2.sh <<'EOF' case x in x) for x in x do echo $x done esac EOF % bash --version GNU bash, version 5.2.21(1)-release [...] % bash test2.sh test2.sh: line 4: syntax error near unexpected token `do' test2.sh: line 4: `do' Enabling POSIX compatibility mode does not appear to have any effect. This failure seems to be a regression introduced in bash-5.0. Prior versions of bash (up to 4.18) work as expected: % bash --version GNU bash, version 4.4.18(1)-release [...] % bash test2.sh x No other shell I've tried has any problem with this syntax. Let me know if you need any more info! Thanks, Nick