将用户输入从NodeJS发送到shell脚本
Send user input from NodeJS to shell script
我有这个NodeJS脚本:
var util = require('util'),
process = require('child_process'),
ls = process.exec('test.sh');
ls.stdout.on('data', function (data) {
console.log(data.toString());
ls.stdin.write('Test');
});
和这个shell脚本:
#!/bin/bash
echo "Please input your name:";
read name;
echo "Your name is $name";
我试着运行NodeJS脚本,它卡在"请输入您的名字:"。有人知道如何从NodeJS脚本发送到shell脚本的输入吗?
谢谢
你必须这样说:
ls.stdin.write('test'n');
或
如果你想从用户使用spawn
输入,你可以继承标准流。
:
var spawn = require('child_process').spawn;
spawn('sh',['test.sh'], { stdio: 'inherit' });
您是否尝试将''n'
添加到输入的末尾(例如ls.stdin.write('Test'n');
)以模拟按回车键?
同样,您需要process.spawn
,而不是process.exec
。后者不像您正在使用的那样具有流接口,而是执行命令并缓冲标准输出和标准错误输出(将其传递给给process.exec()
的回调)。
相关文章:
- 从shell脚本中杀死Node.js程序
- 从shell脚本向js脚本传递变量
- 如何从 php 调用 shell 脚本
- 使用JavaScript调用Shell脚本以实现自动化
- PHP 无法调用 shell 脚本 (js -> php -> sh)
- 使用 node.js (子进程) 运行 shell 脚本
- 如何从 Atom 电子应用程序调用 Shell 脚本或 python 脚本
- 如何使用 shell 脚本文件运行我的节点脚本
- 监视器shell脚本's日志文件
- 当nodejs尝试执行shell脚本时会发生错误
- 如何将javascript变量值传递给生成html/javascript代码的shell脚本
- 如何从JavaScript调用shell脚本
- 如何通过javascript/jquery从网页执行shell脚本,并在字符串中获得其结果
- 在Node.js 0.10.x中调用shell脚本(包括CLI)的同步子进程
- 通过(Java脚本)接口从shell脚本控制Java实例
- Ajax太慢,无法从服务器端响应(shell脚本)
- 将用户输入从NodeJS发送到shell脚本
- 在IntelliJ IDEA中,我如何创建一个键绑定,以当前文件作为参数执行shell脚本
- Bean shell脚本检查响应A或B是否存在于jmeter中的响应文本中
- 使用nodejs执行shell脚本命令