You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Electron应用通过Node.js启动交互式登录shell?

关于Electron中打开交互式Login Shell的问题

你的写法不可行,原因在于child_process.spawn的shell选项如果传入字符串,仅用于指定shell程序的路径,不能直接附加--login这类启动参数。正确的处理方式有两种:

  • 方式一:把--login作为bash的参数传入,单独指定shell路径:

    const { spawn } = require('child_process');
    spawn('bash.exe', ['--login'], {
      stdio: 'inherit',
      cwd: 'C:\\msys64\\usr\\bin', // 若bash已在系统PATH中,可直接写'bash'
      shell: false // 无需额外指定shell,直接调用bash程序即可
    });
    
  • 方式二:如果依赖系统默认shell的环境配置,可将完整命令作为command传入,同时开启shell选项:

    const { spawn } = require('child_process');
    spawn('C:\\msys64\\usr\\bin\\bash.exe --login', [], {
      stdio: 'inherit',
      shell: true
    });
    

注意:Windows系统下路径中的反斜杠需要转义为\\,否则会被当作转义字符解析,导致路径识别错误。

内容的提问来源于stack exchange,提问作者Dany Prasetya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 11:37:01