I currently have the following Bash function:
function xcd {
if [ "$#" -gt 1 ]; then
echo "Usage: xcd [<path>]" >&2
return 1
fi
cd "/some/commonly/used/path/${1}"
}
I'd like for this to support Bash completion - when I type xcd foo
, I'd like it to complete as though I'd typed cd /some/commonly/used/path/foo
. Is there any way to get Bash to be smart about this - presumably by observing how ${1}
is used - without just writing a Bash completion by hand?
Replace your function in your
~/.bashrc
with this:I assume that CDPATH is not used so far. Source your
~/.bashrc
and then you can usecd foo
with bash's completion.