zsh read -q 在 OSX 上坏了?

Yan*_*nin 6 macos zsh

我正在运行% read -q,然后输入一个不是y,Y或的单个字符n。但是,设置的值$REPLY不是n,而是我输入的字符。

文档read -q明确地说:

从终端只读取一个字符,如果这个字符是 'y' 或 'Y',则将 name 设置为 'y',否则设置为 'n'。

此行为在使用 zsh 4.3.11(默认)和 5.0.0(自制软件)的 OSX 10.7 上重现,但在 Linux(Ubuntu 12.04、zsh 4.3.10)上不会重现 - 在 Linux 上,值$READn,正如预期的那样。

另外,我试过在 下运行zsh -f,结果相同(即,我认为它不在我的 init 脚本中)。

我错过了什么吗?

小智 5

这确实是一个bug,已经两年半了。无意中被 zsh-workers 文章 27188 中的补丁丢失了。 文章 30949 中的补丁。