• RestCloud ETL解决shell脚本参数化


     RestCloud ETL社区版是一款数据集成工具,提供可视化多数据管道构建、数据源管理、运行监控及权限管理功能。

    RestCloud平台中如何将变量传入shell脚本中使用,平台中有两种方式运行shell脚本,分别是组件内编写脚本代码调用脚本文件,根据不同的运行方式也有不同的获取变量的方式。

    1.组件内编写脚本

    组件内编写脚本的变量获取方式与其它组件获取变量的方式相同,使用${变量id}就可以获取到变量数据。如下图所示:

    这里做个简单的流程,把数据库表中的某个字段数据作为变量逐条输入到shell脚本当中。

    这里是数据库数据,流程中会将姓名作为变量。

    库表输入组件的配置这边略过,简单的能够成功读取输出数据就行。

     逐行输出这里需要将字段数据转成为变量数据输出到下一个节点。

     这里是shell脚本配置,写个简单的脚本,使用${变量id}调用上个节点传入的变量数据。

     运行之后可以看见已经成功通过${姓名}获取到了数据库输出的数据。

    2.调用脚本文件

    这个是调用已经写好的shell脚本文件,脚本文件中不用定义变量的名字,直接使用 $变量id 这种方式调用就可以成功调用流程中传入的变量。如下图:

     这里同样采用上面的流程和数据库,只是稍微修改了一下shell组件的脚本内容。

     因为是读取的脚本文件,这里需要填写一下脚本所在的目录。在shell脚本中运行文件以及使用${变量id}来获取变量即可,注意:若是多个变量就需要注意变量的顺序。

     这里进入到文件所在目录后使用pwd查看当前所在的路径地址。

     使用vim 文件名称 进入脚本文件编辑脚本代码,这里简单的打印第一个变量和一个hello,在文件中使用$1~$n来添加传到Shell的变量值。$1是第1变量、$2是第2变量…。

    配置完成,运行后查看结果。

     可以看到shell成功获取了变量数据,输出到了日志中。

     感谢您对我们的关注和支持!如需了解更多的功能,请加入RestCloud ETL社区免费下载体验,下载地址:https://etl.restcloud.cn

  • 相关阅读:
    Android之CompletableFuture一异步编程常用方法
    Type mismatch: inferred type is Activity? but Context was expected
    使用promise的基本功能【四、Promise源码】
    西南科技大学派森全套作业
    代码随想录训练营day56
    【网络篇】如何给虚拟机添加网卡,设置固定ip
    go的slice学习
    【无标题】
    Linux内核——门相关入门知识
    基于Zookeeper实现高可用架构
  • 原文地址:https://blog.csdn.net/RestCloud/article/details/125427768