为 bash 编写制表符补全脚本

为 bash 编写制表符补全脚本

我制作了一个 shell 脚本来读取用户的输入并杀死一个进程。但在 bash 中,如果用户按下Tab键,那么 bash 会建议一些keyword名称file。然而我的脚本没有提出任何建议。

如何为我的脚本启用制表符补全?

答案1

最简单的方法是安装bash-completion(或您的发行版的任何其他名称),编写完成脚本,然后将其放入/etc/bash_completion.d.基本的完成脚本如下所示:

have cancel &&
_cancel()
{
    local cur

    COMPREPLY=()
    _get_comp_words_by_ref cur

    COMPREPLY=( $( compgen -W "$( lpstat | cut -d' ' -f1 )" -- "$cur" ) )
} &&
complete -F _cancel cancel

这是cancel来自 的命令cups。阅读手册中的COMPREPLY和,并根据您的需要进行调整。compgenbash

相关内容