介绍新建
nodejs调用
回调
壳
这篇文章将为大家详细讲解有关节点中如何使用shell脚本,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
新建
项目下新建脚本文件
touch newFile中。sh
修改文件权限
chmod 777年,newFile.sh 修改文件为可读可写可执行
nodejs调用
文件读取
//使用nodejs的子进程里面的文件读取方法 {const execFile },=,要求(“child_process& # 39;);
示例
DocsService.publishAllDocs =,(要求,res),=祝辞,{ ,req.session.touch (); {,const  docName的不同之处是,路径名,saveDocsList,, docType },=, req.body; ,var docText =, req.body.docText; ,var newGit =, req.body.newGit; ,//获取文件路径 ,var filepath =, path.join (__dirname, & # 39; . ./. ./bin/rnsource publishAllDocs.sh& # 39;); ,var fileArr,文件名,,spath,, dirnameBack,, docbackList =, [],, docbackPath,, docPath =,““ ,var username =, req.session.user_name; ,var str =, docName + & # 39;/& # 39; +, pathName +, & # 39; | & # 39; +,用户名; ,var reg =, new 正则表达式(“^ ($ {str}) '); ,saveDocsList.map((项目,,指数)=祝辞{ ,,fileArr =, item.pathName.split (“/?; ,,fileName =, fileArr [fileArr.length-1]; ,,如果(==docType “docsify") { ,,,,dirnameBack =, fileName !=,““, ?,“. ./. ./gitlib/docBackup/$ {docName}/docs/$ {item.pathName}’:“. ./. ./gitlib/docBackup/$ {docName}/docs/README.md” 其他,,}{ ,,,,spath =, item.pathName.split(文件名)[0]; ,,,,dirnameBack =, spath !=,““, ? & # 39; . ./. ./gitlib/docBackup & # 39; +, docName + & # 39;/& # 39; +, spath + & # 39;/& # 39; +文件名:& # 39;. ./. ./gitlib/docBackup & # 39; +, docName + & # 39;/& # 39;, +,文件名,, ,,} ,,docbackPath =, path.join (dirnameBack __dirname也); ,,docbackList.push (docbackPath); ,,docPath +=, docbackPath +,“,“; ,}) +=,docPath ““ 慢性消耗病,//设置当前路径,我这边设置的就是nodejs代码js当前的位置 ,execFile (filepath, [docName, docPath,, docType],,{,慢性消耗病:& # 39;强生# 39;,},,函数(stdout,呃,,stderr) { ,,logger.info (stdout); ,,如果(err) { ,,,,loggerFileError({用户:用户名、docName: docName,路径名:& # 39;所有# 39;,操作:“gitbook文件一键发布“,犯错}); ,,,,res.json ({ ,,,,,,respCode:, 1, ,,,,,,errMsg:,“一键发布失败“; ,,,,}) 其他,,}{ ,,,,res.json ({ ,,,,,,respCode:, 0, ,,,,,,味精:,“一键发布成功”; ,,,,}) ,,,,gitPush ({, docName,文件名,,docbackPath:, docbackList,,用户名,路径名,,docType }) ,,,,unblockFile ({, docName,用户名,路径名,,reg }); ,,} })大敌; }
回调
执行成功会返回脚本执行的命令
execFile
- <李>
第一个参数:要调用的外部程序,这里是要读取的文件
李> <李>第二个参数:传给外部程序的参数(必须要放在数组里面)
李> <李>第三个参数:回调函数,在回调中可以回去外部程序的执行结果
李>壳
publishAllDocs。sh主意:此处说明的都是非窗口下的shell脚本窗口的。蝙蝠脚本不在此处讲解
# 1美元文档最外层目录,2美元当前修改的文件名,3美元当前修改文件的目录 cd (pwd)/美元gitlib/docs/1美元 echo “come in" for item 拷贝;2美元;做 echo 才能“${}项“ cp 才能;-f ${项},${项目/docBackup/docs} 完成 #,echo “初始化进入“ echo “$ (pwd)/gitlib/docs/1美元, if [,“3美元,,==,“docsify",); #才能拷贝指定目录下的文件,如:,1美元/3美元/2美元,文档/春秋国旅/7 e4ce1de04621e0b/#才能如,cp -rf . ./. ./docBackup/无线/docs/春秋国旅/7 e4ce1de04621e0b/10708 d589eedfffd.md /docs/春秋国旅/7 e4ce1de04621e0b/cp 才能;-rf 。/docs 公共/docs/. ./. ./. ./1美元 其他的 #,才能处理gitbook类型文档 gitbook 才能;构建 echo 才能“复制文档“; cp 才能;-rf 。/_book/*,公共/docs/. ./. ./. ./1美元 null null null null null null null null null null null null null null null null null null null null null null null null节点中如何使用shell脚本