How to execute multiple shell commands using node.js?

node.js

Solution

I personally use TwoStep in these situations:

var TwoStep = require("two-step");
var exec, start;
exec = require('child_process').exec;
start = function() {
  TwoStep(
    function() {
      exec("wc -l file1 | cut -f1 -d' '", this.val("f1_length"));
      exec("wc -l file2 | cut -f1 -d' '", this.val("f2_length"));
      exec("wc -l file3 | cut -f1 -d' '", this.val("f3_length"));
    },
    function(err, f1_length, f2_length, f3_length) {
      do_something_with(f1_length, f2_length, f3_length);
    }
  );
};

That said, there are a ton of flow controll libraries out there. I encourage you to try some out: https://github.com/joyent/node/wiki/Modules#wiki-async-flow

Problem

Maybe I haven't groked the asynchronous paradigm yet, but I want to do something like this: ``` var exec, start; exec = require('child_process').exec; start = function() { return exec("wc -l file1 | cut -f1 -d' '", function(error, f1_length) { return exec("wc -l file2 | cut -f1 -d' '", function(error, f2_length) { return exec("wc -l file3 | cut -f1 -d' '", function(error, f3_length) { return do_something_with(f1_length, f2_length, f3_length); }); }); }); }; ``` It seems a little weird to keep nesting those callbacks every time I want to add a new shell command. Isn't there a better way to do it?

Original source