功能中的 Bash 完成?

问题描述

我目前有以下 Bash 函数

function xcd {
        if [ "$#" -gt 1 ]; then
                echo "Usage: xcd [<path>]" >&2
                return 1
        fi

        cd "/some/commonly/used/path/${1}"
}

我希望它支持 Bash 补全 - 当我输入 xcd foo 时,我希望它能够像我输入 cd /some/commonly/used/path/foo 一样完成。有什么方法可以让 Bash 聪明地了解这一点 - 大概是通过观察 ${1} 的使用方式 - 而不仅仅是手动编写 Bash 补全?

解决方法

~/.bashrc 中的函数替换为:

CDPATH="/some/commonly/used/path"

我假设到目前为止还没有使用 CDPATH。获取您的 ~/.bashrc,然后您可以将 cd foo 与 bash 一起使用 完成。