A opção –p não significa o mesmo que o comando interno bash ' read '
e o comando interno zsh read.
No comando zsh read , –p significa –– palpite –– “A entrada é lida no coprocess.”
Sugiro que você exiba seu prompt com echo ou printf .
Você também pode precisar substituir –n 1 por –k ou –k 1 .
O zsh equivalente de bash read -p prompt é
read "?Here be dragons. Continue?"
Qualquer coisa depois de um ? no primeiro argumento é usado como a string de prompt.
E, claro, você pode especificar um nome de variável para ler (e esse pode ser um estilo melhor):
read "brave?Here be dragons. Continue?"
if [[ "$brave" =~ ^[Yy]$ ]]
then
...
fi
(Citando variáveis do shell é geralmente uma boa idéia também.)