【发布时间】:2019-12-16 23:39:18
【问题描述】:
我的 .bash_profile 中有一个名为 repos 的 bash 函数,我想为此添加列出特定目录内容的自动完成功能.我正在尝试使用complete 命令来实现这一点。
简而言之,我尝试过的:
创建了一个名为 repos_complete.bash 的文件,其中包含以下代码。此后,我运行 source repos_complete.bash 以确保它适用于 repos 脚本。
repos_complete.bash中的代码:
complete -A directory repos
到目前为止的结果:如果我输入repos,然后按tab,它将列出当前目录的内容。但是,我想要的是它列出另一个目录的内容,例如~/source/repos/.
我尝试将 repos_complete.bash 的内容替换为以下内容:
complete -C ls ~/source/repos repos
当现在输入 repos 和 tab 时,我收到一条错误消息:
无法访问“repos”:没有这样的文件或目录
在我看来,-C(之后接受命令)将整行解释为命令,包括最后一个“repos”,而不仅仅是应用第一部分(ls ~/source/repos)作为函数 repos 的命令,这是我想要实现的。
这里有什么正确传递ls <some path>命令的技巧吗?
注意:我应该指出,这是在 Windows 10 下的 git bash shell 的上下文中运行的,以防有什么不同。
【问题讨论】: