广告
返回顶部
首页 > 资讯 > 精选 >node中如何使用shell脚本
  • 144
分享到

node中如何使用shell脚本

2023-06-14 07:06:40 144人浏览 八月长安
摘要

这篇文章将为大家详细讲解有关node中如何使用shell脚本,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。新建项目下新建脚本文件touch newFile.sh修改文件权限chmod 

这篇文章将为大家详细讲解有关node中如何使用shell脚本,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

新建

项目下新建脚本文件

touch newFile.sh

修改文件权限

chmod 777 newFile.sh 修改文件为可读可写可执行

nodejs调用

文件读取

//使用nodejs的子进程里面的文件读取方法const { execFile } = require(‘child_process');

示例

DoCSService.publishAllDocs = (req, res) => { req.session.touch(); const { docName, pathName, saveDocsList, docType } = req.body; var docText = req.body.docText; var newgit = req.body.newGit; //获取文件路径 var filepath = path.join(__dirname, '../../bin/rnsource/publishAllDocs.sh'); var fileArr, fileName, spath, dirnameBack, docbackList = [], docbackPath, docPath = ""; var username = req.session.user_name; var str = docName+'/'+ pathName + '|'+ username; var reg = new RegExp(`^(${str})`); saveDocsList.map((item, index)=>{   fileArr = item.pathName.split("/");   fileName = fileArr[fileArr.length-1];   if(docType == "docsify"){     dirnameBack = fileName != "" ? `../../gitlib/docBackup/${docName}/docs/${item.pathName}`:`../../gitlib/docBackup/${docName}/docs/README.md`   }else{     spath = item.pathName.split(fileName)[0];     dirnameBack = spath != "" ?'../../gitlib/docBackup/'+ docName+'/'+ spath +'/'+fileName:'../../gitlib/docBackup/'+ docName+'/' + fileName;    }   docbackPath = path.join(__dirname, dirnameBack);   docbackList.push(docbackPath);   docPath += docbackPath + " "; }) docPath += "" //cwd设置当前路径 我这边设置的就是nodejs代码js当前的位置 execFile(filepath, [docName, docPath, docType], { cwd: '.' }, function(err, stdout, stderr){   logger.info(stdout);   if(err){     loggerFileError({user:username,docName:docName,pathName:'all',operate:"gitbook文件一键发布",err});     res.JSON({       respCode: -1,       errMsg: "一键发布失败"     })   }else{     res.json({       respCode: 0,       msg: "一键发布成功"     })     gitPush({ docName, fileName, docbackPath: docbackList, username, pathName, docType })     unblockFile({ docName, username, pathName, reg });   } }) }

回调

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

node中如何使用shell脚本

execFile

  • 第一个参数:要调用的外部程序,这里是要读取的文件

  • 第二个参数:传给外部程序的参数(必须要放在数组里面)

  • 第三个参数:回调函数,在回调中可以回去外部程序的执行结果

shell

publishAllDocs.sh 主意:此处说明的都是非window下的shell脚本 window的.bat脚本不在此处讲解

#$1文档最外层目录 $2当前修改的文件名 $3当前修改文件的目录cd $(pwd)/gitlib/docs/$1echo "come in"for item in $2; do  echo "${item}"  cp -f ${item} ${item/docBackup/docs}done# echo "初始化进入"echo "$(pwd)/gitlib/docs/$1"if [ "$3" == "docsify" ];then  #拷贝指定目录下的文件 如: $1/$3/$2 docs/cst/7e4ce1de04621e0b/  #如 cp -rf ../../docBackup/wireless/docs/cst/7e4ce1de04621e0b/10708d589eedfffd.md ./docs/cst/7e4ce1de04621e0b/  cp -rf ./docs ../../../public/docs/$1else  # 处理gitbook类型文档  gitbook build  echo "复制文档"  cp -rf ./_book/* ../../../public/docs/$1fi

参数接收

  • 根据业务调用时传参的数据来获取参数

  • 直接使用"$"来获取

  • 获取顺序就是数据传入顺序

  • 切记不是数组角标的取值 数组第一个参数就是$1

for循环的使用

在shell使用for…in的形式

需要循环的循环体数据示例

"/Users/Desktop/work/docManager/docServer/gitlib/docBackup/mygitbook/docs/d09985fc67088b35/d09985fc67088b35.md /Users/Desktop/work/docManager/docServer/gitlib/docBackup/mygitbook/docs/d09985fc67088b35/d09985fc67088b35/6f7a2c61c9bac0a3.md /Users/Desktop/work/docManager/docServer/gitlib/docBackup/mygitbook/README.md /Users/Desktop/work/docManager/docServer/gitlib/docBackup/mygitbook/docs/d09985fc67088b35/d09985fc67088b35/6f7a2c61c9bac0a3.md "

shell脚本里面的循环体的数据比较特殊不是我们常规的数组或者json

直接就是以空格隔开的一个字符串 如: “a b c d e”

## $2就是脚本里面接收的业务的传参 按格式拼接好的数据 如上面数据示例## 循环使用 for...in 记得;后面一定要加上do去执行循环体 最后使用done结束循环## item循环体的每个子项 如:/Users/Desktop/work/docManager/docServer/gitlib/docBackup/mygitbook/docs/d09985fc67088b35/d09985fc67088b35.mdfor item in $2; do  echo "${item}"  cp -f ${item} ${item/docBackup/docs}done## ${item/docBackup/docs} 字符串替换## 此处是吧item路径里面的docBackup替换成docs 详细解释请看下面的shell字符串替换

shell指定字符串替换

在JS里面我们可以使用replace去做字符串的替换,那么shell里面改如何实现?

示例:

string “abc12342341”

  • echo ${string/23/bb} //abc1bb42341 替换一次

  • echo ${string//23/bb} //abc1bb4bb41 双斜杠替换所有匹配

  • echo ${string/#abc/bb} //bb12342341 #以什么开头来匹配,根PHP中的^有点像

  • echo ${string/%41/bb} //abc123423bb %以什么结尾来匹配,根php中的$有点像

if条件判断的使用

语法

if[];then ...else ...fi

示例

## 条件判断是使用[]而不是()## []后面要加;if [ "$3" == "docsify" ];then  #拷贝指定目录下的文件 如: $1/$3/$2 docs/cst/7e4ce1de04621e0b/  #如 cp -rf ../../docBackup/wireless/docs/cst/7e4ce1de04621e0b/10708d589eedfffd.md ./docs/cst/7e4ce1de04621e0b/  cp -rf ./docs ../../../public/docs/$1else  # 处理gitbook类型文档  gitbook build  echo "复制文档"  cp -rf ./_book/* ../../../public/docs/$1fi

注意

  • 条件判断里面字符串要使用""双引号

  • 如果条件判断里面有变量(字符串) 变量也要添加""双引号

  • 条件判断[]后面要加上;并且一点要使用then才能继续执行

  • 条件判断最后要使用fi结尾

关于“node中如何使用shell脚本”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: node中如何使用shell脚本

本文链接: https://www.lsjlt.com/news/268759.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • node中如何使用shell脚本
    这篇文章将为大家详细讲解有关node中如何使用shell脚本,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。新建项目下新建脚本文件touch newFile.sh修改文件权限chmod ...
    99+
    2023-06-14
  • node中使用shell脚本的方法步骤
    背景 在开发中我们在特定的场合下可能需要一些脚本来批量处理我们的业务逻辑,在nodejs如何调用shell脚本呢? 新建 项目下新建脚本文件 touch newFile.sh...
    99+
    2022-11-11
  • Shell脚本如何使用
    小编给大家分享一下Shell脚本如何使用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! shell前言Shell 能够接收用户输入的命令,并对命令进行处理,处理完毕后再将结果反馈给用户,比如输出到显示器、写入到文...
    99+
    2023-06-15
  • 如何在ASP中使用shell脚本?
    如何在ASP中使用Shell脚本? 在ASP中使用Shell脚本可以帮助我们实现一些比较复杂的操作,例如运行一些需要在命令行中执行的程序、执行一些系统级别的操作等等。本文将介绍如何在ASP中使用Shell脚本,并通过演示代码来帮助大家更好地...
    99+
    2023-07-27
    缓存 shell 异步编程
  • 在node中如何调用python脚本
    目录node调用python脚本使用场景1、准备运行环境,获取python路径2、前端把命令字符串和python路径传给后端3、服务端调用python脚本nodejs调用python...
    99+
    2022-11-13
  • Shell脚本中如何使用Java数组?
    在Shell脚本中使用Java数组是一个非常常见的需求。这是因为Java数组在存储大量数据时非常方便,而Shell脚本则常常需要处理大量数据。本文将介绍如何在Shell脚本中使用Java数组。 声明和初始化Java数组 在Java中声...
    99+
    2023-09-22
    数组 关键字 shell
  • “$” 符号如何在Shell 脚本中使用
    “$” 符号如何在Shell 脚本中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。通常情况下,在工作中用的最多的有如下几项:$0:Shell 的命令本身1到9:表示 She...
    99+
    2023-06-09
  • 如何在Shell脚本中使用管道
    如何在Shell脚本中使用管道?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。示例1:生成一个8位的随机密码tr -dc A-Za-z0-9_...
    99+
    2023-06-09
  • 如何使用shell脚本语言
    今天就跟大家聊聊有关如何使用shell脚本语言,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1、shell的概述shell 是一种脚本语言脚本:本质是一个文件,文件里面存放的是 特定...
    99+
    2023-06-09
  • 工作中如何使用Shell实用脚本
    这篇文章主要介绍工作中如何使用Shell实用脚本,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1. 内存监控脚本#!/bin/bash#memory usemem_war_file=/tmp/mem_war...
    99+
    2023-06-20
  • 如何在Shell脚本中调用另一个脚本
    如何在Shell脚本中调用另一个脚本?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。假如有脚本 first.sh:#!/bin/bash#------------------...
    99+
    2023-06-09
  • shell中如何调用python脚本
    要在shell中调用Python脚本,可以使用以下命令:```python script.py```其中,`python`是Pyth...
    99+
    2023-10-10
    shell python
  • for循环如何在shell脚本中使用
    这期内容当中小编将会给大家带来有关for循环如何在shell脚本中使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。for 命令:for i in 的各种用法 :for i in “file1” “fil...
    99+
    2023-06-09
  • 如何在Shell脚本中使用awk指令
    如何在Shell脚本中使用awk指令?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。语法格式:awk [选项]  '指令'  操作文件常用选项...
    99+
    2023-06-09
  • 如何使用Java存储Shell脚本?
    Java作为一种广泛应用于企业级应用开发的编程语言,不仅可以实现业务逻辑,还可以辅助完成系统管理工作。本篇文章将介绍如何使用Java存储Shell脚本。 Shell脚本是一种文本文件,其中包含了一系列Shell命令和语句,用于在Unix或L...
    99+
    2023-10-17
    存储 shell apache
  • 如何使用shell脚本安装lnmp
    这篇文章给大家介绍如何使用shell脚本安装lnmp,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1、简介使用shell脚本安装lnmp,纯粹是偷懒,平时安装一些东西都写成脚本了,方便以后在其他机器安装的时候不用再去查...
    99+
    2023-06-09
  • 如何使用Shell脚本case语句
    这篇文章主要介绍“如何使用Shell脚本case语句”,在日常操作中,相信很多人在如何使用Shell脚本case语句问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用Shell脚本case语句”的疑惑有所...
    99+
    2023-06-09
  • 如何使用Shell脚本test命令
    这篇文章主要讲解了“如何使用Shell脚本test命令”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用Shell脚本test命令”吧!Shell中的 test 命令用于检查某个条件是否...
    99+
    2023-06-09
  • 如何使用Shell脚本echo指令
    本篇内容主要讲解“如何使用Shell脚本echo指令”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用Shell脚本echo指令”吧!echo是Shell的一个内部指令,用于在屏幕上打印出指...
    99+
    2023-06-09
  • Linux 中怎么使用Shell脚本
    Linux 中怎么使用Shell脚本,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Linux Shell脚本示例在Linux上完成的大多数shell脚本都涉及bash sh...
    99+
    2023-06-16
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作