Configuration Information [Automatically generated, do not change]: Machine: x86_64 OS: linux-gnu Compiler: gcc Compilation CFLAGS: -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -g -ffile-prefix-map=/build/bash/src=/usr/src/debug/bash -flto=auto -DDEFAULT_PATH_VALUE='/usr/local/sbin:/usr/local/bin:/usr/bin' -DSTANDARD_UTILS_PATH='/usr/bin' -DSYS_BASHRC='/etc/bash.bashrc' -DSYS_BASH_LOGOUT='/etc/bash.bash_logout' -DNON_INTERACTIVE_LOGIN_SHELLS -std=gnu17 uname output: Linux ryle 6.15.9-arch1-1 #1 SMP PREEMPT_DYNAMIC Sat, 02 Aug 2025 01:20:06 +0000 x86_64 GNU/Linux Machine Type: x86_64-pc-linux-gnu
Bash Version: 5.3 Patch Level: 3 Release Status: release Description: Tab completion with a dollar sign, then a possible variable name, in the presence of ambiguity completes incorrectly. The reproduction instructions below illustrate one example, but another can be constructed using the following file names * [$L.a [$L.b Perhaps the original intent was to allow variables inside array indices, and the code is mis-identifying these filenames as array indices? Repeat-By: 1. touch '[$L]'a '[$L]'b; 2. less <tab> * The completion is less "[$L]. 3. type "a" 4. press <tab> * The completion is less "[$L]a" 5. press <enter> The following error is shown: []a: No such file or directory Fix: I only found commit, c5c97b371044a44b701b6efa35984a3e1956344e, that may be implicated, but I'm not smart enough to make anything out of it.