zoukankan      html  css  js  c++  java
  • shell的奇淫巧技--自动化脚本(sed命令)

    使用场景:前段时间交易所项目需要在服务器上用到 根据websocket推送价格数据,在交易所内进行下单撤单处理,但是由于有多个交易对,在服务器上部署时候,略显繁琐。
    (撮合引擎同样有此问题,可以一并解决)

    1:shell使用:在git项目后,这里每个交易对单独配一个文件,负责各自的交易处理,此处做项目下的目录轮询,并执行该目录下的shell脚本

    #!/bin/bash
    root=$(cd "$(dirname "$0")";pwd)
    
    #读取当前目录全部目录名
    dirs=`ls -a`
    for dir in ${dirs[@]}
    do
        #以下判断做去除非项目目录操作
       if [ -d ${root}/${dir} ];then
           if [ ${dir} == '.' ];then
               continue
           fi
           if [ ${dir} == ".." ];then
               continue
           fi
     if [ ${dir} == "logs" ];then
               continue
           fi
           #这里打开对应项目目录,做初始化配置
           cd ${root}/${dir} && ./update.sh
    
       fi
    done

    2:shell的再次使用:在每个项目中需要替换一些配置文件中的个别字符串,作为当前项目的配置文件(解决了不需要再进入每一个项目中去修改配置文件的繁琐)

    #!/bin/bash
    root_dir=$(cd "$(dirname "$0")";pwd)
    
    #获取当前操作系统名称(用来区别linux和mac os系统)
    os=`uname -s`
    
    #获取文件名字
    file=${root_dir##*/}
    
    #配置文件所在位置
    config_file="${root_dir}/app/config/development/environment.ini"
    
    #开始轮询该文件
    while IFS= read -r line
    do
        
        if [[ ${line} == *"otc_pair ="* ]];then
        #取出要替换的字符串
            pair=$(echo ${line}|awk -F '=' '{print $2}'|sed 's/ //g')
        #替换该行字符串  这里的逻辑是将变量 $pair 替换为项目文件名 $file
            if [ ${os} == 'Darwin' ];then
              #此sed命令在macos上
                sed -i "" "s/$pair/$file/g" $config_file
            else
              #此sed命令在linux上
                sed -i "s/$pair/$file/g" $config_file
            fi
            break
        fi
    done <"${config_file}"

    至此完成shell的骚操作,其中关键可利用处我已贴出来,并做了注释,


    我再列下关键点:
    1.sed命令的使用
    2.获取目前目录中文件名
    3. shell脚本的while和if else使用
    4. 轮询目录中的目录,并做其他命令操作

  • 相关阅读:
    Postman生成随机数(4)
    Postman参数化(3)
    Postman主界面介绍(2)
    Postman安装与介绍(1)
    Scuba数据库漏洞扫描工具--安装与使用
    Jmeter(八)Linux上安装与使用
    Jmeter(七)生成测试报告(Windows)
    理解动态字符串SDS
    csp复习笔记?
    ORM
  • 原文地址:https://www.cnblogs.com/darrenzzy/p/9647510.html
Copyright © 2011-2022 走看看