I have a NodeJS script that runs a child process to dump 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 missing, I would take a dump of another 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 register the value of the result variable:
console.log(result);
Files will have such data as indicated below:
line_1 = 7888 line_2 = 8998 line_3 = 9090 line_4 = 9097
Do I need to parse and extract the values โโof line_1 and line_3?
There is no value in the result variable. My idea was to get the stdout data in a string variable and use some kind of search mechanism.
Although I'm not sure about this approach, as I am not very versed in JS / NodeJS.
== == EDIT
Find a replica of the function I wrote.
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 toaster () on the stdout stream object did the trick, but I get console logs as follows:
[ '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 \ 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 the value of line_1 and line_3?