我编写了一个小脚本,从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/ 中,我不介意它是否有它的想法来自那里。