gpt4 book ai didi

node.js - NodeJS 响应 shell 提示符

转载 作者:太空宇宙 更新时间:2023-11-04 00:03:34 25 4
gpt4 key购买 nike

我从 NodeJS 应用程序启动 shell 脚本。
在某个时刻,shell 脚本会要求用户输入(Y/N 确认)。
Node 应用程序在 RaspberryPi 上运行,确认是通过物理按钮(无键盘)完成的,因此“提示答案”必须通过代码完成。
我尝试过:

childProcess.stdin.write("y\n");
childProcess.stdin.end();

但什么也没发生。
需要明确的是,我已经测试了在控制台上手动输入“y”并且它有效,脚本继续其进程

这是我的简单代码:

Node 应用程序:

var Gpio = require('pigpio').Gpio;
class Main {
constructor() {
this.prompt = false;
const button = new Gpio(17, {
mode: Gpio.INPUT,
pullUpDown: Gpio.PUD_DOWN,
edge: Gpio.EITHER_EDGE
});
button.on('interrupt', (level) => {
if (level == 1) {
this.onButtonPress();
} else if (level == 0) {
this.onButtonRelease();
}
});
this.childProcess = require('child_process').spawn('sudo', ['miLazyCracker']);
this.childProcess.stdout.on('data', (dataBuffer) => {
var data = dataBuffer.toString();
console.log(data);
if (data.includes("Do you want clone the card?")) {
this.prompt = true;
}
});
}
onButtonPress() {

}
onButtonRelease() {
if (this.prompt) {
this.childProcess.stdin.write("y\n");
this.childProcess.stdin.end();
console.log("sent prompt confirmation");
}
}
}
new Main();
module.exports = Main;

shell 脚本:https://github.com/nfc-tools/miLazyCracker/blob/master/miLazyCracker.sh

这是简单的控制台输出:

[Useless start of the script]

Do you want clone the card? Place card on reader now and press Y [y/n]
sent prompt confirmation

最佳答案

问题出在 sh 脚本本身,它显然使用了无法从脚本中获取答案的提示方法,我使用常规读取方法对其进行了修改,现在它可以工作了。感谢您的评论

关于node.js - NodeJS 响应 shell 提示符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53453113/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com