打开终端并通过JS / NodeJS执行CLI命令

时间:2018-12-03 16:24:34

标签: javascript node.js user-interface ubuntu terminal

我们是否可以通过任何方式/代码段打开Ubuntu终端并通过JavaScript / Node.js或任何基于UI的语言执行终端命令?

3 个答案:

答案 0 :(得分:1)

您可以通过childProcess 本机 API在nodeJs中运行任何shell命令

var { exec } = require('child_process'); // native in nodeJs

const childProcess = exec('git pull');

最好使用此代码段

我经常要处理很多cli命令,因此我创建了这个简单的帮助器。它可以处理错误,退出并可以在您的脚本中等待以匹配不同的情况

async function execWaitForOutput(command, execOptions = {}) {
    return new Promise((resolve, reject) => {
        const childProcess = exec('git pull', execOptions);

        // stream process output to console
        childProcess.stderr.on('data', data => console.error(data));
        childProcess.stdout.on('data', data => console.log(data));
        // handle exit
        childProcess.on('exit', () => resolve());
        childProcess.on('close', () => resolve());
        // handle errors
        childProcess.on('error', error => reject(error));
    })
}

我可以这样使用:

await execWaitForOutput('git pull');
// then
await execWaitForOutput('git pull origin master');
// ...etc

答案 1 :(得分:0)

看看这个节点模块。

https://github.com/shelljs/shelljs#examples

答案 2 :(得分:0)

您可以使用此模块-OpenTerm。它以跨平台方式打开新的虚拟终端并执行命令:

const { VTexec } = require('open-term')
VTexec('help') // Runs "help" command.