我们是否可以通过任何方式/代码段打开Ubuntu终端并通过JavaScript / Node.js或任何基于UI的语言执行终端命令?
答案 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)
答案 2 :(得分:0)
您可以使用此模块-OpenTerm。它以跨平台方式打开新的虚拟终端并执行命令:
const { VTexec } = require('open-term')
VTexec('help') // Runs "help" command.