在 ZSH 中声明数组
Declaring arrays in ZSH
我在将 shell 脚本转换为 zsh 时遇到问题。我定义了以下数组,但它抛出错误 unknown file attribute: \n
。 (我正在将 dotfiles 存储库转换为我的 zsh)
declare -r -a FILES_TO_SOURCE=(
"bash_aliases"
"bash_exports"
"bash_functions"
"bash_options"
"bash_prompt"
"bash.local"
)
来自 man zshbuiltins
,在 typeset
的条目下(其中 declare
是同义词):
For each name=value assignment, the parameter name is set to value. Note that arrays currently cannot
be assigned in typeset expressions, only scalars and integers.
试试这个:
declare -a FILES_TO_SOURCE
FILES_TO_SOURCE=(
"bash_aliases"
"bash_exports"
"bash_functions"
"bash_options"
"bash_prompt"
"bash.local"
)
declare -r FILES_TO_SOURCE
也就是说,文件列表很可能必须在此处更改以实现兼容性(假设您在这些文件中使用了 bash-isms,这似乎很可能)。
我在将 shell 脚本转换为 zsh 时遇到问题。我定义了以下数组,但它抛出错误 unknown file attribute: \n
。 (我正在将 dotfiles 存储库转换为我的 zsh)
declare -r -a FILES_TO_SOURCE=(
"bash_aliases"
"bash_exports"
"bash_functions"
"bash_options"
"bash_prompt"
"bash.local"
)
来自 man zshbuiltins
,在 typeset
的条目下(其中 declare
是同义词):
For each name=value assignment, the parameter name is set to value. Note that arrays currently cannot be assigned in typeset expressions, only scalars and integers.
试试这个:
declare -a FILES_TO_SOURCE
FILES_TO_SOURCE=(
"bash_aliases"
"bash_exports"
"bash_functions"
"bash_options"
"bash_prompt"
"bash.local"
)
declare -r FILES_TO_SOURCE
也就是说,文件列表很可能必须在此处更改以实现兼容性(假设您在这些文件中使用了 bash-isms,这似乎很可能)。