支持脚本。该脚本做成后,变动性很小。——这个调用脚本是写完主处理脚本后,发现主处理脚本变动频繁,想起来为了简化操作,就做了这么个支持脚本。
代码语言:javascript复制 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变量定义和引用,还做了类似于函数的模块来调用。
——但他的方法我还没消化,就先贴下面我这个笨办法吧。呵呵。
代码语言:javascript复制 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'方法,可以解析转义字符,不过我还是有点分不清换行符和回车符,干嘛两个系统要不一致?
另外非常熟练的使用了管道操作符,并非常清楚它们的用法和区别啦。