安装软件包时,我在尝试自动更新当前 bash 会话中的 bash 完成时遇到问题。
我的包安装了完成文件,/usr/share/bash-completion/completions/
但完成对于安装包的会话不起作用(带有dpkg - i
)
我尝试运行. /path/to/the/file
,甚至. /etc/profile
在脚本中也postinst
无济于事。
我怎么能这样做呢?
答案1
您的软件包无法自行执行此操作,因为它无法访问启动安装的 shell(如果有)的环境。当您尝试在 中加载新的完成时postinst
,这只影响正在运行的 shell 实例postinst
,并且与用户的 shell 实例不同。
您的完成仅在安装后启动的 shell 中可用,对此您无能为力(合理)。希望立即完成新的完成而不启动新 shell 的最终用户必须运行
. /usr/share/bash-completion/bash_completion
手动。