0

For my project I need a specific value from a token that I get trough executing a shell file trough shell JS. The token is in the output of the shellJS.

My problem is that I cannot return my the value in the function to use the token elsewhere.

Here is my code :

const shell = require('shelljs');


const bypass = () => {
    let R2;

    var put = shell.exec('sh ./scripts/script.sh', (err, stdout) => {

        if (err) {
            console.log(err)
        } else {
            let tableau = (stdout.split(' '));
            let test = tableau[tableau.length - 1].split(':');
            let test3 = (test[1]).split(',');
            R2 = (test3[0].substr(1, test3[0].length - 2));
        }
    })
    return R2

}

bypass();

I would like to be able to GET the R2 value when I execute the function such as shown.

Any ideas would be appreciated !

Thanks.

Best regards,

Aymeric.

Hitmands
  • 13,491
  • 4
  • 34
  • 69

1 Answers1

0

The shell.exec, when executed synchronously (default), returns a ShellString.

ShellString has .stdout, .stderr and .code.

var put = shell.exec('sh ./scripts/script.sh');

if (put.stderr === ''){

  let tableau = (put.stdout.split(' '));
  let test = tableau[tableau.length - 1].split(':');
  let test3 = (test[1]).split(',');
  let R2 = (test3[0].substr(1, test3[0].length - 2));

}
Charlie
  • 22,886
  • 11
  • 59
  • 90