【问题标题】:send request from node js to shell expect从节点 js 发送请求到 shell 期望
【发布时间】:2013-10-14 13:55:51
【问题描述】:

关于expect和nodejs的交互。 如何从 nodejs 发送请求,到这样的脚本:

#! /usr/bin/expect 
log_user 0
spawn -noecho ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no HOST_IP -- "some request"
expect "password: "
send "PASSWORD\r"
expect eof
send_user "$expect_out(buffer)"

我需要从 nodejs 发送一个带有特殊参数的请求,并在期望端接收它? 我以这种方式向节点发出请求。

var spawn = require('child_process).spawn;
var listA = spawn('./SOME_SHELL_SCRIPT');

有一种变体可以像这样向 spawn 添加参数:

var listA = spawn('/.SOME_SHELL_SCRIPT',  args=[], [options])

我如何使用这些选项,并在“某些请求”字段中使用它们?

【问题讨论】:

  • 所以基本上:“我如何将参数传递给子进程?”

标签: node.js shell scripting expect child-process


【解决方案1】:

这是一个例子:

app.js

var spawn = require('child_process').spawn;

var script = spawn("./script.sh", ["A Variable"]);
var stdout= ""

script.stdout.on('data', function (data) {
  stdout = stdout + data;
});

script.on('exit', function (code) {
  console.log('stdout: ' + stdout);
});

脚本.sh

echo "Script Got '$1'"

试一试:

> node app.js
  stdout: Script Got 'A Variable'

【讨论】:

  • 我在看文档,我觉得事件应该是script.on('close',...), not 'exit'
猜你喜欢
  • 1970-01-01
  • 2021-03-09
  • 2017-12-24
  • 2016-02-11
  • 2023-02-19
  • 1970-01-01
  • 2023-03-06
  • 1970-01-01
  • 2017-07-14
相关资源
最近更新 更多