在Linux上进行开发,经常需要跑一些脚本。比如我要跑tgactivity <file.spec>,往往需要使用5个UP包,每个跑两遍。如果手动来做十分耗时,于是用sed替换命对UP包进行修改,并循环调用tgactivity命令。
sed命令修改文件的例子
首先,将要替换的UP存入一个数组upArray中,将现在文件中的UP存入oldUp中。
其次,判断文件是否存在,如果不存在打印Log并直接退出脚本。
再次,循环数组upArray,在该循环中首先执行2遍tgactivity,然后将oldUp替换为newUp,并修改oldUp的值为当前的UP。依次循环...
最后,将文件内容恢复原样。这步最初没有做,后来当再次跑该脚本时又需要手动将文件恢复原样,所以一个脚本最基本的要求能够多次执行,并得到一致的结果。
我也考虑过使用vi中的替换命令,单独使用可以生效。不过汇报一个警告:
Vim: Warning: Input is not from a terminal
但是,嵌入到循环之后,会报错:
./soaking.sh: line 29: syntax error: unexpected end of file
这不是fileformate的原因导致的,如果哪位大神知道可以留言给我:
vi命令修改文件的例子