zsh 中的读取命令引发错误

7 zsh read

在 zsh 中,运行命令read -p 'erasing all directories (y/n) ?' ans,抛出错误,

read: -p: no coprocess
Run Code Online (Sandbox Code Playgroud)

但是在 bash 中,它会打印一个提示。我如何在 zsh 中做到这一点?

Chr*_*own 8

您仍然可以使用read,您只需要先打印一个提示。在zsh,-p指示应该从协进程读取输入而不是指示要使用的提示。

您可以改为执行以下操作,这是符合 POSIX 的:

printf '%s ' 'erase all directories? (y/n)'
read ans
Run Code Online (Sandbox Code Playgroud)