我编写了一些包含自己的 Bash 完成脚本的软件。当我source
手动执行此脚本时,它运行良好,但我正在尝试找出在 Ubuntu 18.04 上安装的最佳方法。
中有很多其他完成脚本/usr/share/bash-completion/completions
,这让我认为这就是答案,但在那里安装我的完成脚本没有任何效果。那个位置是不是有点误导?或者除了将脚本放在那里之外,我还需要做些什么来注册脚本?
答案1
您可以将完成的内容放在主目录下的扩展值中
${BASH_COMPLETION_USER_DIR:-${XDG_DATA_HOME:-$HOME/.local/share}/bash-completion}/completions
或以超级用户身份
bash-completion/completions
在扩展值中任何逗号分隔的目录下的子目录中${XDG_DATA_DIRS:-/usr/local/share:/usr/share}
完成文件必须与命令同名,或者可以以 为前缀_
或以 为后缀.bash
。
您可以type __load_completion
在 bash 中运行以列出加载补全的函数以了解详细信息。
您必须重新启动 shell,例如通过运行exec bash
才能使更改在该 shell 中生效。
答案2
您是否尝试过将该文件复制(覆盖)到/usr/share/bash-completion/bash_completion
您的系统上?请确保备份您的原始bash_completion
文件。
然后重新启动(或者可能只是注销并重新登录?)就可以了。
查看答案这个问题。