简单的bash命令失败,无法执行二进制文件

时间:2015-09-24 21:24:12

标签: linux node.js bash

我尝试在节点bu执行一些简单的bash得到一个错误: /usr/bin/file: /usr/bin/file: cannot execute binary file

'use strict';

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

var process = spawn('bash', ['file']);
process.stdout.on('data', function(data){
    console.log(data.toString());
});
process.stderr.on('data', function(data){
    console.log(data.toString());
});

我甚至给了脚本chmod + x,然后用node script.js

运行它

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

看起来当您正在催生子进程时,您实际上正在尝试运行"文件"命令,而不是shell脚本,所以bash正在咆哮你。

这相当于在命令行输入:" bash file"。

您希望编写一个shell脚本并将其作为参数传递给bash进程。

所以,编写一个名为" do_something.sh"的脚本。然后使用[' do_something.sh']作为bash的参数运行代码而不是[' file']:

var process = spawn('bash', ['do_something.sh']);