背景

在开发中我们在特定的场合下可能需要一些脚本来批量处理我们的业务逻辑,在nodejs如何调用shell脚本呢?

新建

项目下新建脚本文件

修改文件权限

nodejs调用

文件读取

示例

回调

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

execfile

  • 第一个参数:要调用的外部程序,这里是要读取的文件
  • 第二个参数:传给外部程序的参数(必须要放在数组里面)
  • 第三个参数:回调函数,在回调中可以回去外部程序的执行结果

shell

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

参数接收

  • 根据业务调用时传参的数据来获取参数
  • 直接使用”$”来获取
  • 获取顺序就是数据传入顺序
  • 切记不是数组角标的取值 数组第一个参数就是$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”

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条件判断的使用

语法

示例

注意

  • 条件判断里面字符串要使用””双引号
  • 如果条件判断里面有变量(字符串) 变量也要添加””双引号
  • 条件判断[]后面要加上;并且一点要使用then才能继续执行
  • 条件判断最后要使用fi结尾

到此这篇关于node中使用shell脚本的方法步骤的文章就介绍到这了,更多相关node使用shell脚本内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!