Description of problem: /etc/bash_completion.d/grub seems to assume the function have() is available, but that's not the case. Version-Release number of selected component (if applicable): I've been seeing this problem for several releases now, starting around F15 and still happening in F17 How reproducible: Always. Steps to Reproduce: 1. Start a bash shell. Actual results: Shell reports errors: bash: have: command not found bash: have: command not found bash: have: command not found bash: have: command not found bash: have: command not found bash: have: command not found bash: have: command not found bash: have: command not found bash: have: command not found bash: have: command not found bash: have: command not found bash: have: command not found Expected results: Bash should shut up. :) Additional info: I'm working around this via a conditional definition of have() in my own Bash scripts, but I feel I must be missing something. Is anyone else seeing this?
$ rpm -qf /etc/bash_completion.d/grub grub2-tools-2.0-0.38.beta6.fc17.x86_64 So that file comes from grub2, not bash-completion. Anyway, how are you loading /etc/bash_completion.d/grub? You shouldn't be loading anything from /etc/bash_completion.d "manually" in your startup files, bash-completion does it itself automatically when appropriate and when it does, the have() function is defined.
Ah, I see -- I assumed the completion package maintains those files. I should have checked first. I've dug deeper and I found that the problem is that my user's bash setup scripts prevent bash_completion.sh from being sourced, so the function isn't available. Thanks!