首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Javascript中执行shell命令

如何在Javascript中执行shell命令
EN

Stack Overflow用户
提问于 2009-12-10 18:54:01
回答 11查看 512.1K关注 0票数 164

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

我该如何实现这一点?

EN

回答 11

Stack Overflow用户

发布于 2013-12-17 23:33:23

这里的许多其他答案似乎都是从浏览器中运行的JavaScript函数的角度来解决这个问题的。我将拍摄并回答假设,当提问者说“外壳脚本”时,他指的是一个Node.js后端JavaScript。可能会使用commander.js来构建您的代码:)

您可以使用node中的child_process模块。我粘贴了下面的示例代码。

代码语言:javascript
复制
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();

希望这能有所帮助!

票数 165
EN

Stack Overflow用户

发布于 2018-09-30 14:06:42

我不知道为什么之前的答案给出了各种各样复杂的解决方案。如果你只想执行一个像ls这样的快速命令,你不需要异步/等待或回调或其他任何东西。这是您需要的所有内容- execSync

代码语言:javascript
复制
const execSync = require('child_process').execSync;
// import { execSync } from 'child_process';  // replace ^ if using ES modules
const output = execSync('ls', { encoding: 'utf-8' });  // the default is 'buffer'
console.log('Output was:\n', output);

对于错误处理,在语句周围添加一个try/catch块。

如果您正在运行一个需要很长时间才能完成的命令,那么可以看看asynchronous exec函数。

票数 88
EN

Stack Overflow用户

发布于 2009-12-10 18:58:06

这完全取决于JavaScript环境。请详细说明。

例如,在Windows脚本中,您可以执行以下操作:

代码语言:javascript
复制
var shell = WScript.CreateObject("WScript.Shell");
shell.Run("command here");
票数 26
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1880198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档