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. 轮询目录中的目录,并做其他命令操作

 

转载于:https://www.cnblogs.com/darrenzzy/p/9647510.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值