我在 zsh 上。这里发生了什么...?
答案1
问题不是你不能设置IFS
,而是在 zsh 中(与 bash 不同),不带引号的变量扩展不受“split + glob”(分词和文件名生成)的影响。因此,整个$a
被分配给 的第一个元素b
(即$b[1]
,因为 zsh 中数组从 1 开始索引 - 再次与 bash 不同)。
要获得类似 bash 的行为,您可以设置 zsh 的shell 选项,或者使用代替 plainshwordsplit
显式地进行变量扩展字分割。$=a
$a
有关更细致的解释,请参阅什么是分词?为什么它在 shell 编程中很重要?