我正在编写一个包含某个 Linux 命令的脚本。现在,当我直接在命令行上使用该命令时,该命令具有一些自动完成行为。例如,如果我输入命令名称,然后输入空格,然后输入字符串并按 Tab 键 - 它会补全为路径上可执行文件的名称。但是,包装脚本确实不是似乎有这种行为。如何让 bash 对我的包装器使用与原始命令相同的自动完成功能?
为了使事情更具体:命令是which
.我正在编写一个调用它的包装器,如果它没有失败,则readlink -f
在which
.我希望自动完成功能来查找路径上的可执行文件,就像which
.
答案1
which
您可以列出with 的完成规范
complete -p which
结果是complete -c which
。因此,如果您mywhich
在 PATH 中有自己的新命令(可执行文件),那么您可以通过配置 bash 以相同的方式完成它
complete -c mywhich
你可以把这一行放入~/.bash_completion