node.js - 从代码执行 shell 脚本

标签 node.js shell child-process

我正在尝试从 nodejs 代码执行 shell 脚本

//test.sh
wget http://nodejs.org/dist/v0.10.26/node-v0.10.26-linux-x64.tar.gz
tar -zxvf node-v0.10.26-linux-x64.tar.gz
mv node-v0.10.26-linux-x64 node-v0.10.26
sudo cp -r node-v0.10.26 /usr/local/src

//app.js
var exec = require('child_process').exec;
 var execProcess = require("./exec_process.js");
execProcess.result("sh test.sh", function(err, response){
    if(!err){
        console.log(response);
    }else {
        console.log(err);
    }
});

//exec_process.js
 var exec = require('child_process').exec;

var result = function(command, cb){
    var child = exec(command, function(err, stdout, stderr){
        if(err != null){
            return cb(new Error(err), null);
        }else if(typeof(stderr) != "string"){
            return cb(new Error(stderr), null);
        }else{
            return cb(null, stdout);
        }
    });
}

exports.result = result;

执行 app.js 后,我看不到任何响应。我在这里做错了什么?

最佳答案

试试这个

// app.js
require('child_process').spawn('sh', ['test.sh'], {stdio: 'inherit'});

关于node.js - 从代码执行 shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36873566/

相关文章:

node.js - 无法要求 ('child_process' ).spawn,控制台说 spawn 不是函数,Python-Shell Node 包

node.js - 当 Node 进程被杀死时杀死所有child_process

node.js - Puppeteer - 协议(protocol)错误(Page.navigate): Target closed

shell - 如何使 virtualenvwrapper 在 fish shell 中工作?

linux - 如何使用 bash 从文件中提取特定行

linux - 在所有文件中搜索和替换 URL

从同一进程创建 N 个子进程,然后打印所有子进程与相关父进程的 PID

node.js - 将 https 代理配置为仅允许 TLS1.2 用于传出请求

javascript - Node.js 将相同的可读流输送到多个(可写)目标中

javascript - 从浏览器隐藏服务器端技术信息