【问题标题】:type yes to stdout request | node.js在标准输出请求中输入 yes |节点.js
【发布时间】:2014-08-07 08:13:36
【问题描述】:
var project = {repo: 'a', owner: 'b'};
var sys = require('sys');
var exec = require('child_process').exec;

 function getRevision(error, stdout, stderr){
    exec("yes"); // <--- how can I say 'yes' to request from stdout?
    console.log(error, stdout, stderr);
 }

 exec("git ls-remote "+"bitbucket.org:"+project.owner+"/"+project.repo+".git", getRevision);

在控制台我有

The authenticity of host 'bitbucket.org (131.103.20.167)' can't be established.
RSA key fingerprint is 97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40.
Are you sure you want to continue connecting (yes/no)?

我如何才能对来自控制台的这个请求说“是”?

【问题讨论】:

    标签: node.js stdout stdin


    【解决方案1】:

    不用说yes,完全可以避免提示:Git clone with custom SSH using GIT_SSH error

    简而言之,你需要在 git 运行 ssh 时在某处指定StrictHostKeyChecking=no。您可以在 SSH 配置文件中或更复杂的方式中执行此操作。

    【讨论】:

    • 也许你是对的,但我通过在 bitbucket.org 之前添加“git@”来解决这个问题 :)
    • 嗯,你知道一旦你对提示说“是”一次,它就不会在同一台机器上返回吗?
    • 我不会直接向控制台写“是”。它是自己修复的。但是如何将命令发送到控制台并回答请求?
    • 如果您真的非常想要(并且对于这个应用程序您不应该),您可以使用程序expect 以编程方式与 CLI 程序交互。在这种情况下,它只是没有保证,如果你尝试会浪费很多时间。 :)
    猜你喜欢
    • 2021-12-13
    • 1970-01-01
    • 2013-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多