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

如何在Node.js中通过spawn执行带命令行参数的bash脚本

你写法不生效的核心原因是 child_process.spawn 的第二个参数是传入给启动程序的独立参数数组,不能将脚本路径和参数拼接为单个字符串传入。

你只需要把脚本路径、要传递给脚本的命令行参数按顺序依次放到这个数组里即可,示例如下:

var spawn = require('child_process').spawn;
// 单个参数场景
spawn('bash', [pathToScript, 'hello'], {
    stdio: 'ignore',
    detached: true
}).unref();

如果有多个参数,直接往数组后追加即可:

var spawn = require('child_process').spawn;
// 多个参数场景,依次传入
spawn('bash', [pathToScript, 'hello', 'param2', 'param3'], {
    stdio: 'ignore',
    detached: true
}).unref();

如果参数已经提前存储在一个数组里,可以用扩展运算符拼接:

var spawn = require('child_process').spawn;
var params = ['hello', 'param2', 'param3'];
spawn('bash', [pathToScript, ...params], {
    stdio: 'ignore',
    detached: true
}).unref();

spawn不会对传入的参数做命令行字符串解析,数组中的每一项都会作为独立的参数传递给bash程序。你之前把脚本路径和参数拼接成单个字符串,bash会把整段字符串识别为要执行的脚本文件路径,找不到对应文件自然执行失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 21:36:04