平时添加新用例往往在原来用例的基础上改,由于仿真脚本的限制(要求用例文件名和其中的class名相同),此时需要替换新用例中的class名:大概的过程就是先cp文件,然后gvim打开,输入替换命令替换。
下面这个py脚本实现复制
文件
时,自动修改
class名的功能
:
# python copy_file.py TC_1 TC_2
"""file_name: copy_file.py"""import sysdef main(): if(len(sys.argv) != 4): print("options not enough.") sys.exit() else: o_file = sys.argv[1] n_file = sys.argv[2] suffix = sys.argv[3] # key_words(o_file, n_file) copy_file(o_file, n_file, suffix)def copy_file(old_file, new_file, suffix): new_lines = [] try: f_obj = open(old_file+"."+suffix) except FileNotFoundError: print(old_file+"."+suffix+" : no such file.") else: for line in f_obj: if old_file in line: new_lines.append( line.replace(old_file, new_file) ) else: new_lines.append(line) f_obj.close() try: # f_obj = open(new_file+"."+suffix) f_obj = open(new_file+"."+suffix, "w") except FileNotFoundError: print(new_file+"."+suffix+" : no such file.") else: for line in new_lines: f_obj.write(line) f_obj.close()main()
但是和老司机交流发现,实际上很少有人会向上面这样实现。为什么?下面2行的shell脚本能实现同样的功能!
# file_name: copy_file.shcp $1.sv $2.svsed -i "s/$1/$2/g" $2.sv
有没有想起“铁锤人倾向”呢?
参考资料:
1 Linux sed 命令,https://www.runoob.com/linux/linux-comm-sed.html
2 Shell 传递参数,https://www.runoob.com/linux/linux-shell-passing-arguments.html
3 cygwin下切换到其他磁盘, https://blog.csdn.net/lts_cxl/article/details/17248727