Node.js spawn'echo $(python –version)'

我想使用node.js来产生echo $(python --version) ,如果我把它放到我的terminal,它没有问题,我得到像

 Python 2.7.12 

但是,如果我使用下面的代码:

 var spawn = require('child_process').spawn var child = spawn('echo', ['$(python --version)']) child.stdout.on('data', function(b){ console.log(b.toString()) }) 

我只是把string文字回显给我:

 $(python --version) 

如何逃避参数生成正确,所以我得到正确的输出。

编辑:我特别想使用产卵,回声,我想知道是否有一个解决scheme,以正确地逃离派生参数…

这应该帮助你。

 var exec = require('child_process').exec; exec('python --version', function(error, stdout, stderr) { console.log('stdout: ' + stdout); console.log('stderr: ' + stderr); if (error !== null) { console.log('exec error: ' + error); } }); 

根据评论的要求编辑:

 var exec = require('child_process').exec; exec('echo "Output goes here"', function(error, stdout) { //Replace echo with any other command. console.log(stdout); }); 

输出:输出到这里。

可能需要检查: 如何在节点中为shell命令转义string?