gpt4 book ai didi

linux - 自定义脚本的 zsh 补全

转载 作者:太空狗 更新时间:2023-10-29 11:22:02 25 4
gpt4 key购买 nike

我写了一个小脚本,它从 https://wiki.archlinux.org/index.php/full_system_backup_with_rsync 运行整个系统 rsync它采用一些命令行选项和系统的主机名作为参数。我想给它赋予 ssh 之类的自动完成类型。但是,我真的不想输入用户,因为 root 几乎是唯一可以执行此操作的用户。

理想情况下,我想输入 wholesystem.sh fi 并将其填入 fileserver.domain.com

这是我的自定义完成文件。这些选项确实有效,但主机填写显然没有,我只是迷路了从这里去哪里。

#compdef wholesystem.sh
typeset -A opt_args
_arguments \
'-h[help]' \
'-s[silent]' \
'-v[verbose]' \
'-d[dry run]' \
':remote system:_user_at_host:'

我可以让它从 ~/.ssh/known_hosts 中提取,我可以接受,或者...备份系统将备份保存在 ~/WholeSystems/host.domain.com/中,我不介意如果它从那里得到它的想法。

最佳答案

我建议这样:

#compdef wholesystem.sh

_wholesystem.sh() {
typeset -A opt_args
_arguments \
'-h[help]' \
'-s[silent]' \
'-v[verbose]' \
'-d[dry run]' \
':remote system:_wholesystem_hosts'
}

_wholesystem_hosts() {
[...]
}

_wholesystem.sh

_wholesystem_hosts的内容取决于您想要哪种主机。例如,如果您想要与 ssh 相同的主机, 你可以复制 _ssh_hosts来自 .../functions/Completion/Unix/_ssh 的代码.

我不知道这是否是个好方法,但这似乎可行。

关于linux - 自定义脚本的 zsh 补全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27413880/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com