I'm trying to set an array in ZSH (configured using oh-my-zsh).
export AR=(localhost:1919 localhost:1918)
but I'm getting an error like such:
zsh: number expected
If I don't add the export command, it's just fine. I'm not typing the above in a *rc file, just in the zsh prompt. What could be the problem?
You can't export
an array in zsh.
For more info: http://zsh.sourceforge.net/Guide/zshguide02.html
Note that you can't export arrays. If you export a parameter, then assign an array to it, nothing will appear in the environment; you can use the external command
printenv VARNAME
(again no$
because the command needs to know the name, not the value) to check. There's a more subtle problem with arrays, too. The export builtin is just a special case of the builtin typeset, which defines a variable without marking it for export to the environment. You might think you could do
typeset array=(this doesn\'t work)
but you can't --- the special array syntax is only understood when the assignment does not follow a command, not in normal arguments like the case here, so you have to put the array assignment on the next line. This is a very easy mistake to make. More uses of typeset will be described in chapter 3; they include creating local parameters in functions, and defining special attributes (of which the
export
attribute is just one) for parameters.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With