节点中如何使用shell脚本

  介绍

这篇文章将为大家详细讲解有关节点中如何使用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 });   ,,}   })大敌;   }

回调

执行成功会返回脚本执行的命令

苯诘阒腥绾问褂胹hell脚本"

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脚本