我试图通过带有child_process
当我运行行
时,我的bash脚本中没有工作的部分(echo "PASSWORD"; echo "PASSWORD"; echo "NAME"; echo "ORGANIZATION"; echo "ORGANIZATION"; echo "CIUDAD"; echo "REGION"; echo "PAIS"; echo "yes";echo) |keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
基本上,我在尝试运行keytool时会尝试回答不同的选项,但是它无法正常工作(等待选项的过程很紧张)
在节点中我正在运行
exec('./script.sh', {
cwd: '/Users/MY/Directory'
}, (error, stdout, stderr) => {
if (error) {
console.error(`exec error: ${error}`);
return;
}
console.log(`stdout: ${stdout}`);
console.log(`stderr: ${stderr}`);
}).stderr.pipe(process.stderr);
有解决方案吗?
由于
答案 0 :(得分:1)
当每个回声发生并且只有最后一个回声被传送到您的程序时,这不会起作用。
我处理此问题的方法可能是expect
。
请参阅https://linux.die.net/man/1/expect
您也可以使用-dname
标志来设置这些字段。这比处理交互式提示更清晰。
" cn = Mark Jones,ou = Java,o = Oracle,c = US"