Re: why bash completion sometimes doesn't work?
On Mon, Jan 03, 2022 at 08:12:50PM +0000, Long Wind wrote:
> Thank Greg! i use bash 5.0-4 and bash-completion 1:2.8-6
> i type "ifdown wl" and press Tab, nothing happens
> there's only one wireless device in /etc/network/interfaces
> it shall complete command to "ifdown wlx12345"
>
> i've read /etc/skel/.bashrc, programmable completion seems enabled by default
> and it works for other commands, e.g. i type "dhclient enp" and Tab, it becomes "dhclient enp0s1"
Well. In this package, the completions for ifdown and dhclient
are very different. E.g. in dhclient's completion, there's code that
looks like this:
if [[ "$cur" == -* ]]; then
COMPREPLY=( $( compgen -W '-p -d -q -1 -r -lf -pf -cf -sf -s -g -n -nw
-w' -- "$cur" ) )
else
_available_interfaces
The ifdown completion, on the other hand, has:
if [[ $cword -eq 1 ]]; then
_configured_interfaces
COMPREPLY=( $(compgen -W '${COMPREPLY[@]}' -- "$cur") )
I wonder what the difference between _available_interfaces and
_configured_interfaces is. Looks important.
Reply to: