为什么我无法在 zsh 中设置 IFS?

1 zsh

我在 zsh 上。这里发生了什么...?

1

看来我只是无法设置 IFS;当我调查时,它保留在 '\n' (换行符,而不是 'n')上,但我在 .zshenv 和 .zshrc 中都没有设置它。

有什么建议么?提前致谢!

编辑

我的数组表现得多么奇怪的另一个例子: 2

再次提前致谢!

ste*_*ver 5

问题不是你不能设置IFS,而是在 zsh 中(与 bash 不同),不带引号的变量扩展不受“split + glob”(分词和文件名生成)的影响。因此,整个$a被分配给 的第一个元素b(即$b[1],因为 zsh 中数组从 1 开始索引 - 再次与 bash 不同)。

要获得类似 bash 的行为,您可以设置 zsh 的shell 选项,或者使用代替 plain 显shwordsplit式地进行变量扩展字分割。$=a$a

有关更细致的解释,请参阅什么是分词?为什么它在 shell 编程中很重要?