使用 bash 一切都很好:
tdy
# ID x1 x2
# 1 1 < 0.1
# 2 2 100
# 3 3 A 2.5
# 4 4 200
但是 zsh 我遇到了麻烦:
$ yes | bash -c 'read -sn 1 -p "[Y/n] " RESPONSE ; echo $RESPONSE'
y
答案 0 :(得分:3)
当使用-k
选项时,除非另有说明,否则zsh的read
命令将从终端读取。这在zshbuiltins
联机帮助页的相应部分中进行了说明。您的管道正在为脚本提供标准输入,但这对尝试从终端读取没有影响。
您可以将-u 0
添加到read
的调用中,告诉它从标准输入(文件描述符0)读取,即使其他选项(例如-k
)会导致它从别处读。