如何从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
相关产品推荐
相关产品推荐

