首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从管道中获取参数,但也运行提示?

从管道中获取参数,但也运行提示?
EN

Stack Overflow用户
提问于 2020-04-28 18:40:49
回答 2查看 655关注 0票数 1

我正在编写一个Node脚本,用于从Bash终端执行。它需要两个文件名,然后通过提示向用户询问如何处理它们。我使用yargs解析命令行参数,使用prompt-sync询问用户问题,这一切似乎都很好.

但是,当我将一个参数传送到我的脚本时,如下所示:

代码语言:javascript
运行
复制
echo "file2.md" | .myscript.js --f1 file1.md

这在比较file1.mdfile2.md时起作用,我使用pipe-argsyargs来实现这一目标。但是当涉及到提示时,使用管道式的参数会干扰并阻止它们的工作。

我尝试把它放在我的脚本之外,隔离地测试它,同时使用prompt-syncinquirer,并且将一个参数放入脚本中似乎也会影响提示符。

所以我很确定这不是特定的提示符包。

重新创造:

下面是我对提示同步(名为prompt-sync-test.js的文件)的测试:

代码语言:javascript
运行
复制
#!/usr/bin/env node
const prompt = require("prompt-sync")({"sigint": true})

for (var i = 0; i < 5; i++) {
  console.log("Going to bring up a prompt")
  var result = prompt("This is a test -- enter something >");
  console.log("Result", result)
}

...when它工作:

运行./prompt-sync-test.js很好,每次都会问五个问题,打印结果。

代码语言:javascript
运行
复制
$ ./prompt-sync-test.js
Going to bring up a prompt
This is a test -- enter something >1
Result 1
Going to bring up a prompt
This is a test -- enter something >2
Result 2
Going to bring up a prompt
This is a test -- enter something >3
Result 3
Going to bring up a prompt
This is a test -- enter something >4
Result 4
Going to bring up a prompt
This is a test -- enter something >5
Result 5

...when它没有:

但是运行echo hello world | ./prompt-sync-test.js会打印第一个提示符的消息,但是输入的任何输入都会再次重复提示消息,输入任何先前的答案,比如(我输入的数字与上面描述的测试中相同的数字,并在每次输入后按enter ).

代码语言:javascript
运行
复制
$ echo hello world | ./prompt-test.
js
Going to bring up a prompt
This is a test -- enter something >1
This is a test -- enter something >1
                                     2
This is a test -- enter something >1
2
                                       3
This is a test -- enter something >1
2
3
                                         4
This is a test -- enter something >1
2
3
4
                                           5
This is a test -- enter something >1
2
3
4
5

在我的脚本中加入一些东西似乎会干扰提示符本身。

基本上,我希望能够使用脚本中的管道,但是像第一种情况一样具有提示性工作。我怎么才能让这事发生?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61487593

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档