如何在 Javascript 中执行 shell 命令

2022-08-30 01:44:06

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

如何实现此目的?


答案 1

我会假设当提问者说“Shell Script”时,他指的是Node.js后端JavaScript。可能使用 commander.js 来使用 frame 代码:)

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

var exec = require('child_process').exec;

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);
        }
    });

希望这有帮助!


答案 2

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

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);

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

如果您正在运行一个需要很长时间才能完成的命令,那么是的,请查看异步 exec 函数。