专栏首页35岁开始自学编程学习的最大动力是想要更加减少重复性工作

学习的最大动力是想要更加减少重复性工作

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

 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'方法,可以解析转义字符,不过我还是有点分不清换行符和回车符,干嘛两个系统要不一致?

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 和35岁刘阿姨一起自测 Python 流程控制基本功

    流程控制语句、布尔值、布尔值操作符都属于 python 的基础功。大好周末我写这篇笔记,不是为了整理这些基础知识点,而是记录几个令我突然迷惑的代码段。——代码本...

    刘娟娟PRESSone
  • 如何批量添加中文和英文数字之间的空格?用正则表达式吧

    但我们可能尚未养成这样的输入习惯,以至于要么全部没有空格,要么部分加了空格,部分没有。当然您可以不在乎这个文本规范。对于那些在意这个文本规范的人,想要规范格式,...

    刘娟娟PRESSone
  • 数据分析师如何自力更生统计用户行为频次?

    不懂数据分析的 growth hacker 不是好运营。近日我想要统计我家产品 xue.cn 用户的编程自学行为的频次,且在不给技术开发部门带来任何新需求的情况...

    刘娟娟PRESSone
  • 2018 年最值得期待的学术进展——致人工智能研究者们的年终总结

    原标题:2018 年最值得期待的学术进展——致人工智能研究者们的年终总结 ? 来源:AI科技评论 概要:这里,我们为大家奉上机器学习学者 Alex Honcha...

    企鹅号小编
  • 泛型的继承和通配符,同时归纳集合部分的面试点

        在定义泛型时,我们可以通过extends来限定泛型类型的上限,也可以通过super来限定下限,这两个限定字一般会和?等关键字搭配使用。     比如有这...

    用户1153489
  • 问:为什么java是单继承,但却是多实现的呢?

    在学习的过程中,我发现了如题的这个有趣的问题。 单继承不必解释,一个类只能有一个直接父类;但是对于接口的实现,一个类却能够实现多个接口。 为什么是这种情...

    roobtyan
  • css控制标题长度超出部分显示省略号

    width: 50px; overflow:hidden;white-space:nowrap; text-overflow:ellipsis; 设置或...

    smy
  • WCF技术剖析之十六:数据契约的等效性和版本控制

    数据契约是对用于交换的数据结构的描述,是数据序列化和反序列化的依据。在一个WCF应用中,客户端和服务端必须通过等效的数据契约方能进行有效的数据交换。随着时间的推...

    蒋金楠
  • 表格操作

    js提供的操作表格的属性 tBodies 表格头 tHead 表格正文 tFoot 表格尾 rows 行 cells 列

    河湾欢儿
  • 瀑布图有什么用?用python怎么画?

    比如说,假设某公司一月份销售额 1000 万,二月份销售额 500 万,为了体现各地区的销售额变化,我们可以画一张瀑布图如下。

    朱小五

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动