我尝试在节点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
运行它有什么想法吗?
答案 0 :(得分:2)
看起来当您正在催生子进程时,您实际上正在尝试运行"文件"命令,而不是shell脚本,所以bash正在咆哮你。
这相当于在命令行输入:" bash file"。
您希望编写一个shell脚本并将其作为参数传递给bash进程。
所以,编写一个名为" do_something.sh"的脚本。然后使用[' do_something.sh']作为bash的参数运行代码而不是[' file']:
var process = spawn('bash', ['do_something.sh']);