canonical-livepatch快照不为其子命令提供自动完成功能。根据“帮助”页,有效的子命令如下:
$ canonical-livepatch help
...
COMMANDS:
config - configure livepatching on the machine
disable - disable livepatching on the machine
enable - enable livepatching on the machine
help - display help
kernel-upgrade-required - indicate whether a kernel upgrade is required
refresh - immediately download and apply any available livepatch
status - show kernel's livepatch status是否有一种简单的方法可以为在canonical-livepatch中工作的Bash中的子命令添加自动完成,而不必修改快照本身?
更详细的一点是,自动完成还应该适用于命令的snap别名livepatch。
$ snap aliases
Command Alias Notes
canonical-livepatch livepatch manual
lxd.lxc lxc -发布于 2022-03-26 23:36:36
这可以通过创建以下自动完成脚本(我称之为livepatch-completion)来完成:
# canonical-livepatch completion script
_livepatch_completion()
{
# Only autocomplete for first subcommand
if [ "${#COMP_WORDS[@]}" != "2" ]; then
return
fi
# Define the list of words that will autocomplete and display on double-tab
COMPREPLY=($(compgen -W "config disable enable help kernel-upgrade-required refresh status" "${COMP_WORDS[1]}"))
}
# Initialize the completion function for both the original command and the alias livepatch
complete -F _livepatch_completion canonical-livepatch livepatch将脚本放置在任何您喜欢的地方(例如~/.bash_completion)。
通过将这一行添加到~/.bashrc (或启动终端时来源的任何其他文件)来获取自动完成脚本:
source ~/.bash_completion/livepatch-completion这可能不是最高级的解决方案,但它可以简单地自动完成任何其他命令的子命令,包括snaps和别名。
https://askubuntu.com/questions/1399442
复制相似问题