推荐使用shelljs 来执行shell脚本,内部封装了 child_process,可以更方便的调用系统命令。
一般在Windows下都会写bat脚本,nodejs在Windows下执行shell脚本可以使用node-cmd。
var cmd=require ('node-cmd' );
cmd.get (
'pwd' ,
function (err, data, stderr ){
console .log ('the current working dir is : ' ,data)
}
);
cmd.run ('sh ./sync.sh' );
也可以使用Nodejs的child-process
const { spawn,exec,execFile } = require ('child_process' );
let syncFile = spawn ('sh' ,['./sync.sh' ]);
syncFile.stdout .on ('data' , (data ) => {
console .log (`stdout: ${data} ` );
});
syncFile.on ('close' ,(code )=> {
console .log (`子进程退出码:${code} ` )
})
syncFile.stderr .on ('data' ,(data )=> {
console .log (`stderr:${data} ` )
})
如果使用pm2管理程序,上面两种方法可能会有问题,可以尝试使用git bash
const { spawn,exec,execFile } = require ('child_process' );
const syncFile= spawn ("C:/Program Files/Git/git-bash.exe" , ['./sync.sh' ]);
syncFile.stdout .on ('data' , (data ) => {
console .log (data.toString ());
});
syncFile.stderr .on ('data' , (data ) => {
console .log (data.toString ());
});
syncFile.on ('exit' , (code ) => {
console .log (`子进程退出码:${code} ` );
});
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?