前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >学习的最大动力是想要更加减少重复性工作

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

作者头像
刘娟娟PRESSone
发布2019-10-27 00:25:26
3190
发布2019-10-27 00:25:26
举报

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

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

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2011-11-03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档