我有两个文件一个(readlines.js)是一个逐行读取文件行的脚本,第二个(test.txt)文件包含脚本应该执行的行 喜欢:
节点/usr/local/server/test/CLI-test.js functionName ARG1 ARG2 ARG3 ARG4 ARG5
只有在完成此代码后,我才想读取test.txt中的下一行 但似乎所有操作都在同一时间执行。
这是我在readlines.js中的代码
var fs = require('fs'), readline = require('readline');
var exec = require('child_process').exec, child;
var fileTest = process.argv[2] != "" ? './test/'+process.argv[2] : './test/test.txt';
var rd = readline.createInterface({
input: fs.createReadStream(fileTest),
output: process.stdout,
console: false
});
rd.on('line', function(line) {
console.log(line);
executeCommand(line);
});
function executeCommand(line){
exec('sudo ' + line,{maxBuffer: 1024 * 500000000}, (err, stdout, stderr) => {
if (err) {
console.error(`exec error: ${err}`);
return;
}
console.log(`Number of files ${stdout}`);
});
}
此外我发现所有操作都在一起发生,因为缓冲区不够大。