compgen -d -- $cur
will suggest completions for the directories in pwd only right?
Can I get it to suggest directory completions for some dir while being in another dir.
For eg. if I am in /curr_dir
, and I want to generate directory completions for /other_dir
what do I do? How do I specify it to compgen
, so that I don't need to go to /other_dir
In my bash-completion function, I tried doing a cd
to that dir before calling compgen
but that leaves me in the other dir after pressing <Tab>
.
compgen -d -- $cur
will suggest completions for the directories in pwd only right?
No, it will complete $cur
, assuming the content is a path. Try it yourself by entering the
command directly into your shell. Example:
$ compgen -d -- "/"
/run
/lib64
/usr
[...]
So the only thing you have to do is to use "$other_dir" instead of "$cur". Also, remember to quote the strings or the shell might split the directory name:
compgen -d -- "$foo" # good
compgen -d -- $foo # bad
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