diff --git a/packages/node_modules/@node-red/nodes/core/function/90-exec.js b/packages/node_modules/@node-red/nodes/core/function/90-exec.js index f5e7edd87..795343c22 100644 --- a/packages/node_modules/@node-red/nodes/core/function/90-exec.js +++ b/packages/node_modules/@node-red/nodes/core/function/90-exec.js @@ -18,6 +18,7 @@ module.exports = function(RED) { "use strict"; var spawn = require('child_process').spawn; var exec = require('child_process').exec; + var fs = require('fs'); var isUtf8 = require('is-utf8'); function ExecNode(n) { @@ -122,12 +123,14 @@ module.exports = function(RED) { }); } else { + var execOpt = {encoding:'binary', maxBuffer:10000000}; + if (process.platform === 'linux' && fs.existsSync('/bin/bash')) { execOpt.shell = '/bin/bash'; } var cl = node.cmd; if ((node.addpay === true) && msg.hasOwnProperty("payload")) { cl += " "+msg.payload; } if (node.append.trim() !== "") { cl += " "+node.append; } /* istanbul ignore else */ if (RED.settings.verbose) { node.log(cl); } - child = exec(cl, {encoding:'binary', maxBuffer:10000000}, function (error, stdout, stderr) { + child = exec(cl, execOpt, function (error, stdout, stderr) { var msg2, msg3; delete msg.payload; if (stderr) {