如何在Javascript中执行shell命令

如何在Javascript中执行shell命令

我想编写一个JavaScript函数,它将执行系统shell命令(ls例如)并返回值。

我该如何实现这一目标?


MMMHUHU
浏览 5476回答 3
3回答

jeck猫

这里的许多其他答案似乎都是从浏览器中运行的JavaScript函数的角度来解决这个问题。我会拍摄并回答,假设当提问者说“Shell Script”时,他的意思是Node.js后端JavaScript。可能使用commander.js来使用框架你的代码:)您可以使用节点API中的child_process模块。我粘贴了下面的示例代码。var exec = require('child_process').exec, child;child = exec('cat *.js bad_file | wc -l',     function (error, stdout, stderr) {         console.log('stdout: ' + stdout);         console.log('stderr: ' + stderr);         if (error !== null) {              console.log('exec error: ' + error);         }     });  child();希望这可以帮助!

慕田峪7331174

您的示例foo.js文件可能如下所示:import { exec } from 'child_process';/**  * Execute simple shell command (async wrapper).  * @param {String} cmd  * @return {Object} { stdout: String, stderr: String }  */async function sh(cmd) {   return new Promise(function (resolve, reject) {     exec(cmd, (err, stdout, stderr) => {       if (err) {         reject(err);       } else {         resolve({ stdout, stderr });       }     });   });}async function main() {   let { stdout } = await sh('ls');   for (let line of stdout.split('\n')) {     console.log(`ls: ${line}`);   }}main();确保你有巴贝尔:npm i babel-cli -g安装最新预设:npm i babel-preset-latest运行它:babel-node --presets latest foo.js
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript