在ZSH中设置环境变量给出了预期的数量

Mar*_*ark 5 zsh

我正在尝试在ZSH中设置一个数组(使用oh-my-zsh配置).

export AR=(localhost:1919 localhost:1918)
Run Code Online (Sandbox Code Playgroud)

但我得到一个像这样的错误:

zsh: number expected
Run Code Online (Sandbox Code Playgroud)

如果我不添加导出命令,那就没问题了.我没有在*rc文件中输入上述内容,只是在zsh提示符中.可能是什么问题呢?

Wol*_*lph 8

你不能export在zsh中使用数组.

欲了解更多信息:http://zsh.sourceforge.net/Guide/zshguide02.html

请注意,您无法导出数组.如果导出参数,然后为其分配一个数组,则环境中不会出现任何内容; 您可以使用外部命令printenv VARNAME' (again no$',因为命令需要知道要检查的名称而不是值.数组也存在一个更微妙的问题.export builtin只是内置排版的一个特例,它定义了一个变量而没有标记它以便导出到环境中.你可能认为你可以做到

typeset array=(this doesn\'t work)
Run Code Online (Sandbox Code Playgroud)

但你不能---只有在赋值不遵循命令时才能理解特殊数组语法,而不是像普通参数那样理解,所以你必须把数组赋值放在下一行.这是一个非常容易犯的错误.排版的更多用途将在第3章中描述; 它们包括在函数中创建局部参数,以及为参数定义特殊属性(其中`export'属性只有一个).