【发布时间】:2015-03-04 16:05:16
【问题描述】:
我有一个脚本,我正在尝试使用 grunt-shell 插件与 grunt 一起运行。此脚本提示使用read -p "enter foo" bar 进行输入。当我运行它时,我得到一个正确接受我输入的光标,但我没有看到“输入 foo”。
我尝试修改 grunt-shell 配置以将 err、stderr 和 stdout 转储到控制台,但是一旦命令完成,它们就会全部为空。 read 的手册页说 -p 标志“仅当输入来自终端时才显示提示。”,这似乎是我的问题,因为节点正在调用提示,但读取命令正在我的终端,而我正在终端中输入输入,那为什么不起作用?
那么,我的问题是,有没有办法提示用户从 grunt-shell 插件输入?
另外,作为一个 P.S.,是的,我知道只是回显提示并处理其下方的输入是很容易的,但该死的是事情的原理。
【问题讨论】:
-
"该死的,这就是事情的原理" +1 :D
-
经过一番修改,我认为你是对的......该命令实际上是通过节点运行的事实
child_process看起来是罪魁祸首,我的猜测是提示来自read命令实际上并不是stdin,因此它没有正确地通过管道传输到控制台。这里的“有原则”的解决方案可能不走运。
标签: node.js bash shell gruntjs