Configuration Information [Automatically generated, do not change]: Machine: x86_64 OS: linux-gnu Compiler: gcc Compilation CFLAGS: -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall uname output: Linux system76-pc 6.1.0-4-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.11-1 (2023-02-09) x86_64 GNU/Linux Machine Type: x86_64-pc-linux-gnu
Bash Version: 5.2 Patch Level: 15 Release Status: release Description: The handling of EOF while parsing an (unmatched) quoted string changes between 5.1 and 5.2. In 5.1, typing [Ctrl-d] alone while in the context of a quoted string in an interactive shell will report a syntax error, and prompt for a new command. In 5.2, the same action does not report a syntax error, and instead the shell exits. I used to rely on [Ctrl-d] for getting out of a multiline string typed in error. I suppose I should be using [Ctrl-c] to that effect instead. Old habits die hard though, and I got curious about whether this change was intentional. The oldest version of bash I have access to is 3.00.22(1)-release, and it behaves the same way as 5.1. Repeat-By: Please find the transcript of 3 terminal sessions illustrating the difference in behavior between 5.2.15(1)-release, 5.2.15(7)-maint and 5.1.0(3)-release. Terminal input is denoted as [INPUT], e.g. [Ctrl-d] $ bash --norc bash-5.2$ echo $BASHPID 132773 bash-5.2$ GNU bash, version 5.2.15(1)-release (x86_64-pc-linux-gnu) bash-5.2$ echo ' >[Ctrl-d] bash: unexpected EOF while looking for matching `'' >[Enter] (Shell exits) $ ./bash --norc bash-5.2$ echo $BASHPID 132768 bash-5.2$ GNU bash, version 5.2.15(7)-maint (x86_64-pc-linux-gnu) bash-5.2$ echo ' >[Ctrl-d] bash: unexpected EOF while looking for matching `'' (Shell exits) $ ./bash --norc bash-5.1$ echo $BASHPID 132662 bash-5.1$ GNU bash, version 5.1.0(3)-release (x86_64-pc-linux-gnu) bash-5.1$ echo ' >[Ctrl-d] bash: unexpected EOF while looking for matching `'' bash: syntax error: unexpected end of file bash-5.1$ echo $BASHPID 132662