zoukankan      html  css  js  c++  java
  • 学习的最大动力是想要更加减少重复性工作

    支持脚本。该脚本做成后,变动性很小。——这个调用脚本是写完主处理脚本后,发现主处理脚本变动频繁,想起来为了简化操作,就做了这么个支持脚本。

     1 #!bin/bash
    2 #-------------脚本作用:-------------
    3 #用于处理和调用另一个频繁改动的脚本。
    4
    5 #本人所用shell脚本都是在notepad++下写的
    6 #无一例外,都需要执行cat filedos | tr -d '\r' > fileunix移除dos文件的回车符
    7 #首先进入工作的bin目录下
    8 #执行cat http://www.cnblogs.com/test/droprateH.sh | tr -d '\r' > agoodjob.sh
    9 #执行bash agoodjob.sh 就可以调用另一个主逻辑脚本
    10
    11 #命令行提示符必须要进入/BIN/目录下DropRateTester.exe才能正确load关联的npc配置表。
    12 #所有的文件路径都是以此为基础来写的
    13
    14 #处理脚本为可运行,并复制到当前目录下执行。执行完毕删除。
    15 cat http://www.cnblogs.com/test/droprate.sh | tr -d '\r' > droprateunix.sh
    16 ./droprateunix.sh
    17 rm droprateunix.sh


    主处理脚本,我还不会读取文件里的内容作为命令行的参数,所以用了excel的公式[="text"&A1&"text"]来生成处理的命令行

    ——其实主体处理部分,真正使用时是有上千条的。我不关心脚本执行时间,顶多十几分钟,喝个茶就好了。但是脚本臃肿很难忍受。

    ——于是请教很擅长shell脚本的程序员GG,他帮我优化,做了path变量定义和引用,还做了类似于函数的模块来调用。

    ——但他的方法我还没消化,就先贴下面我这个笨办法吧。呵呵。

     1 #!/bin/bash
    2
    3 #作用:调用现有工具DropRateTester.exe,批量查询并输出怪物掉落信息。
    4 #使用:本脚本可直接修改,然后保存。不可以直接执行。
    5 #亮点:依赖DropRateH.sh调用。进入bin/目录下,执行bash agoodjob.sh可调用该脚本。
    6
    7
    8 #查询之前的处理
    9 echo 开始运行时间`date`
    10 #删除旧的查询结果
    11 rm http://www.cnblogs.com/test/droprate/DropRateTesterResult.txt
    12
    13
    14
    15
    16 #查询处理,以下语句用excel生成。
    17 echo -e newxkd007 4 1000 '\r'>> http://www.cnblogs.com/test/droprate/DropRateTesterResult.txt && ./DropRateTester.exe newxkd007 4 100 >> http://www.cnblogs.com/test/droprate/DropRateTesterResult.txt
    18 echo -e newxkd009 6 1000 '\r'>> http://www.cnblogs.com/test/droprate/DropRateTesterResult.txt && ./DropRateTester.exe newxkd009 6 100 >> http://www.cnblogs.com/test/droprate/DropRateTesterResult.txt
    19 echo -e newxkd027 7 1000 '\r'>> http://www.cnblogs.com/test/droprate/DropRateTesterResult.txt && ./DropRateTester.exe newxkd027 7 100 >> http://www.cnblogs.com/test/droprate/DropRateTesterResult.txt
    20 echo -e anpc006_01a 10 1000 '\r'>> http://www.cnblogs.com/test/droprate/DropRateTesterResult.txt && ./DropRateTester.exe anpc006_01a 10 100 >> http://www.cnblogs.com/test/droprate/DropRateTesterResult.txt
    21 echo -e anpc022_02 10 1000 '\r'>> http://www.cnblogs.com/test/droprate/DropRateTesterResult.txt && ./DropRateTester.exe anpc022_02 10 100 >> http://www.cnblogs.com/test/droprate/DropRateTesterResult.txt
    22 echo -e anpc004 12 1000 '\r'>> http://www.cnblogs.com/test/droprate/DropRateTesterResult.txt && ./DropRateTester.exe anpc004 12 100 >> http://www.cnblogs.com/test/droprate/DropRateTesterResult.txt
    23 echo -e anpc015sl 14 1000 '\r'>> http://www.cnblogs.com/test/droprate/DropRateTesterResult.txt && ./DropRateTester.exe anpc015sl 14 100 >> http://www.cnblogs.com/test/droprate/DropRateTesterResult.txt
    24 echo -e anpc003 10 1000 '\r'>> http://www.cnblogs.com/test/droprate/DropRateTesterResult.txt && ./DropRateTester.exe anpc003 10 100 >> http://www.cnblogs.com/test/droprate/DropRateTesterResult.txt
    25 echo -e anpc023 10 1000 '\r'>> http://www.cnblogs.com/test/droprate/DropRateTesterResult.txt && ./DropRateTester.exe anpc023 10 100 >> http://www.cnblogs.com/test/droprate/DropRateTesterResult.txt
    26 echo -e hnpc001d 9 1000 '\r'>> http://www.cnblogs.com/test/droprate/DropRateTesterResult.txt && ./DropRateTester.exe hnpc001d 9 100 >> http://www.cnblogs.com/test/droprate/DropRateTesterResult.txt
    27 echo -e anpc004ss 12 1000 '\r'>> http://www.cnblogs.com/test/droprate/DropRateTesterResult.txt && ./DropRateTester.exe anpc004ss 12 100 >> http://www.cnblogs.com/test/droprate/DropRateTesterResult.txt
    28 echo -e anpc006_02 14 1000 '\r'>> http://www.cnblogs.com/test/droprate/DropRateTesterResult.txt && ./DropRateTester.exe anpc006_02 14 100 >> http://www.cnblogs.com/test/droprate/DropRateTesterResult.txt
    29
    30
    31
    32 #查询之后的处理
    33 #对查询结果进行更合适的处理1、执行多个空格转换为1个空格 2、把空格替换为tab键
    34 cp http://www.cnblogs.com/test/droprate/DropRateTesterResult.txt http://www.cnblogs.com/test/droprate/agoodresult.txt
    35 cat http://www.cnblogs.com/test/droprate/agoodresult.txt | tr -s ' ' | tr ' ' '\t'> AGoodJob/DropRateTesterResult.txt
    36 rm http://www.cnblogs.com/test/droprate/agoodresult.txt
    37 echo 结束运行时间`date`
    38 echo ---------------------------------------------
    39 echo
    40 echo 查询结果位于当前目录AGoodJob/DropRateTesterResult.txt
    41 echo

    在以上脚本中,我的重要收获是根据需求搜到了以下好用的方法:

    tr -s ' '方法,把多个连续的空格替换为一个

    tr ' ' '\t'方法,把空格替换为tab键

    这样处理后,可以直接把结果粘贴到excel中,方便进一步调用配置使用。因为策划执行的主要还是各种配置表。

    ``方法,把一个命令行的输出结果作为另一个命令行的参数

    &&方法,两个命令行都执行,这个对于我用excel公式批量生成命令行很有用

    echo -e '\r'方法,可以解析转义字符,不过我还是有点分不清换行符和回车符,干嘛两个系统要不一致?

    另外非常熟练的使用了管道操作符,并非常清楚它们的用法和区别啦。

  • 相关阅读:
    StructureMap经典的IoC/DI容器
    移植的7zip到Vxworks 取名vx7zip
    试验Boost在Vxworks上的应用日记 三
    Log4cpp 崩溃
    试验Boost在Vxworks上的应用日记 一
    Vx7zip改进
    GoAhead 2.5 Web Server 网页ROM化的改进
    试验Boost在Vxworks上的应用日记 二
    原来CoreBluetooth 只支持Bluetooth Low Energy
    可变长结构体
  • 原文地址:https://www.cnblogs.com/jjliu/p/2235050.html
Copyright © 2011-2022 走看看