I can't get a simple bash autocompletion function to work. I need to autocomplete file names from a predefined directory so it will look like this:
$ cmd log<TAB><TAB>
file1.log file2.log file3.log
Where files are from /var/log/app.
I don't see the point of using ls when the shell can list files just fine by itself, so here's one using just the shell.
_cmd() {
local files=("/var/log/app/$2"*)
[[ -e ${files[0]} ]] && COMPREPLY=( "${files[@]##*/}" )
}
complete -F _cmd cmd
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With