【问题标题】:Prompt for input in using the grunt-shell plugin在使用 grunt-shell 插件时提示输入
【发布时间】: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


【解决方案1】:

我将我的代码重定向回 /dev/tty。 运行为bash -c run.sh </dev/tty

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2019-11-09
  • 2010-10-01
  • 2015-10-10
  • 2015-12-08
  • 1970-01-01
  • 2016-02-21
  • 1970-01-01
  • 2014-12-02
相关资源
最近更新 更多