Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8710445
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 13, 20262026-06-13T04:37:39+00:00 2026-06-13T04:37:39+00:00

I have a NodeJS script that ‘exec’s a child process to capture cat dump

  • 0

I have a NodeJS script that ‘exec’s a child process to capture cat dump of a file:

var exec = require('child_process').exec;
var result = '';
var child = exec('./scripts/first.sh',function(err, stdout, stderr) {
    result = stdout.split("=");
});

If in case the file is not there I would take dump of a different file:

var result = '';
var child = exec('./scripts/first.sh',function(err, stdout, stderr) {
    result = stdout.split("=");
    if(stdout.indexOf('No such file or directory') != -1){
        var child = exec('./scripts/second.sh', function(err, stdout, stderr) {
            result = stdout.split("=");
    });
});

Finally I log the value of result variable:

console.log(result);

The files would have data like mentioned below:

line_1 = 7888
line_2 = 8998
line_3 = 9090
line_4 = 9097

I need to parse and extract values of line_1 and line_3?

The result variable does not shows any value. My idea was to get the stdout data in a string variable and use some search mechanism.

Though I am not sure of the approach as I am not much experience on JS / NodeJS.

==EDIT==

Please find a replica of the function I have written.

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

function getdetail() {
        var result = '';
        var child = exec('./scripts/first.sh', function(err, stdout, stderr) {
                if(stdout.indexOf('No such file or directory') != -1){
                        var child = exec('./scripts/second.sh',function(err, stdout, stderr) {
                        result = stdout.toString().split("=");
                        console.log(result);
                        });
                }
                else
                {
                        result = stdout.toString().split("=");
                        console.log(result);
                }
        });
}

The tostring() on stdout stream object did the trick but I get console logs as mentioned below:

[ 'spawn ssh -o UserKnownHostsFile',
  '/dev/null -o StrictHostKeyChecking',
  'no user@www.mybox.com cat ver.txt\r\nWarning: Permanently added \'www.mybox.com,XX.XX.XX.XX\' (RSA) to the list of known hosts.\r\r\nuser@www.mybox.com\'s password: \r\line_1',
  '9400\r\nline_2',
  '3508\r\nline_3',
  '77f3\r\nline_4',
  '/tmp\r\nline_5',
  '/tmp/ramdisk/\r\nline_5',
  '77f3\r\n' ]

How can I extract value of line_1 and line_3?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-13T04:37:40+00:00Added an answer on June 13, 2026 at 4:37 am

    exec is asynchronous. Thus, if you write something like:

    var result = '';
    var child = exec('...'), function() { result = 'abc'; } );
    console.log(result);
    

    Then result maybe be empty, since console.log(result) can and often will get executed before exec returns to its callback and fill in the new value.

    To fix this, you need to process the result asynchronously in the exec’s callback function.

    Also I’m not sure if the way you check for errors is the best possible. Instead of checking for “no such file or directory”, you could simply test if err has non-null value:

    if(err) {
    

    Putting this all together we end up with the following code:

    var exec = require('child_process').exec;
    
    var result = '';
    var processResult = function(stdout) {
        var result = stdout.split("=");
        console.log(result);
    };
    
    var child = exec('./scripts/first.sh',function(err, stdout, stderr) {
        if(err) {
            var child = exec('./scripts/second.sh', function(err, stdout, stderr) {                         
                processResult(stdout);
            });
        } else {            
            processResult(stdout);
        }
    });
    

    If you need to further process the stdout data, you need to iterate through it to find out all possible occurences of strings containing “key=value”. Here is a rough idea:

    var processResult = function(stdout) {  
        var lines = stdout.toString().split('\n');
        var results = new Array();
        lines.forEach(function(line) {
            var parts = line.split('=');
            results[parts[0]] = parts[1];
        });
    
        console.log(results);
    };
    

    I hope this gets you started.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have a nodejs script that uses phantomjs-node to scrape a webpage. It works
It's weird I have a little request (in nodejs) ( request_working.js ) that require
I have a node.js script that does some logging to a file using WriteStream.
I have a phantomJS script that is executed via an exec() call in a
Right now I have a nodeJS script that sets up a database for me.
I have a file that launch nodejs/restify server, when calls arrive to my server
I have a nodejs server that executes commands through child_process.exec. One such command restarts
I have a script that writes a file to the file system, here is
I have a PHP script that pulls an XML file from a remote server,
I have a problem with nodejs and connect and the fact that it's not

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.