温馨提示×

JavaScript与Linux命令行如何交互

小樊
48
2025-09-12 17:07:04
栏目: 编程语言

在JavaScript中,你可以使用Node.js的child_process模块来与Linux命令行进行交互。child_process模块提供了execspawn两种方法来创建子进程并执行Linux命令。

以下是使用child_process模块的一个简单示例:

const { exec } = require('child_process');

// 执行Linux命令
exec('ls', (error, stdout, stderr) => {
  if (error) {
    console.error(`执行错误: ${error}`);
    return;
  }
  console.log(`stdout: ${stdout}`);
  if (stderr) {
    console.error(`stderr: ${stderr}`);
  }
});

如果你需要更高级的交互,例如实时接收命令输出或向命令发送输入,你可以使用spawn方法:

const { spawn } = require('child_process');

// 创建子进程
const child = spawn('bash');

// 监听子进程的输出
child.stdout.on('data', (data) => {
  console.log(`stdout: ${data}`);
});

// 监听子进程的错误输出
child.stderr.on('data', (data) => {
  console.error(`stderr: ${data}`);
});

// 监听子进程的关闭事件
child.on('close', (code) => {
  console.log(`子进程退出,退出码:${code}`);
});

// 向子进程发送输入
child.stdin.write('echo "Hello from child process"\n');
child.stdin.end();

请注意,这些示例需要在Node.js环境中运行,而不是在浏览器中。在浏览器中运行JavaScript代码会受到安全限制,无法直接访问系统命令行。

0