在我的工作中,我们有约30K的过程控制变量,可通过网络协议进行访问,该协议具有便捷的命令行工具。
我正在使用zsh完成脚本,它将为我提供变量名称和描述。
这对于少数选项很容易。
compdef command
local -a var
var=('press1:Pressure 1' 'temp1: Temperature 1')
_describe 'var' var
当您有3万个变量时,这不起作用。我编写了脚本,将所有30K都写入了文件:
# contents of file
press1:Pressure1
temp1:Temperature1
press_n:Pressure for nth
...
然后我可以这样做:
compdef command
local -a var
# I'm sure there's a zsh specific way to do this
var=($(cat var.list | tr "\n" " "))
_describe 'var' var
我想我可以将3万行分成多个文件。我需要一种方法来根据变量的第一个字母选择要加载的正确子列表。
处理此类完成的最佳方法是什么? 此用例是否滥用ZSH完成?有更好的方法吗?