注1:之前使用的是perl,现在尝试切换到python;

注2:该脚本用于实现自动拿仿真环境,里面应该还有很多不足之处,后续逐渐完善;

注3:假设脚本名字为get_env.py,直接执行脚本,会有两次输入,分别为ll和hl,如果ll=hl,比如均为1,那么最终生成env_1环境;如果hl>ll,比如ll=1,hl=3,则最终生成env_1, env_2, env_3;

资料参考:

(1) https://www.cnblogs.com/heibaimao123/p/16294111.html (可以使用python命令行参数对脚本进行升级)

注1:其实不是很麻烦,在实例脚本中,import sys模块,并且添加ll=int(sys.argv[1])与hl=int(sys.argv[2]);

(2) https://blog.csdn.net/lx_ros/article/details/122811361 (推荐阅读)

实例

注1:11行下面漏掉两行内容,分别为"ll=int("pls enter low limit:")"与"hl=int("pls enter high limit:")";

 1 #/usr/bin/python3
2
3 import os
4
5 #设置仿真环境放置的目录位置,该处在脚本中写死,也可以通过微调脚本在仿真命令行输入目录位置;
6 main_work_dir="***"
7 print(main_work_dir)
8
9 #打印信息,说明接下来将会创建env,env的名字是env_*,*是ll到hl之间的数字;
10 #ll为low limit, hl为high limit,后续会需要user在命令行输入;
11 print("env will be created with name-env_*, * is the number from ll to hl!")
12
13 #为了实现打印彩色输出信息而添加的内容;
14 class bcolors:
15 OK ='\033[92m'
16 WARNING ='\033[93m'
17 ERROR ='\033[91m'
18 END ='\033[0m'
19 BOLD ='\033[1m'
20
21 #函数实现跳转到输入参数指定的路径,并打印当前路径;
22 def chdir_print_dir(work_dir):
23 os.chdir(work_dir)
24 work_dir_tmp=os.getcwd()
25 print(work_dir_tmp)
26
27 #函数实现根据输入参数info_type的不同进行不同色彩的打印
28 def colored_print(user_str, info_type):
29 if(info_type=="OK"):
30 start_str=bcolors.OK+bcolors.BOLD
31 end_str =bcolors.END
32 elif(info_type=="WARNING"):
33 start_str=bcolors.WARNING+bcolors.BOLD
34 end_str =bcolors.END
35 elif(info_type=="ERROR"):
36 start_str=bcolors.ERROR+bcolors.BOLD
37 end_str =bcolors.END
38 else:
39 raise Exception("info_type %s is not supported"%info_type)
40
41 for num in range(ll, hl+1):
42 chdir_print_dir(main_work_dir)
43 #下行的***需要用实际的git repo代替
44 os.system("git clone ***"+"env_"+str(num))
45 colored_print("step1: git clone done!!","OK")
46 chdir_print_dir(main_work_dir+"env_"+str(num))
47 #下行根据实际仿真环境的获取而有所不同;
48 os.system("git submodule update --recursive --int")
49 colored_print("step2: git submodule udpate done!!", "OK")
50 chdir_print_dir(main_work_dir)
51 colored_print("step3: env-env_%d is created done!"%num,"OK")

最新文章

  1. jquery遍历选中checkbox的id
  2. Linux学习之三--scp命令
  3. Windows下搭建Wordpress博客网站
  4. ASP.NET Core 开发-中间件(Middleware)
  5. 开源的即时通讯框架 (endv.cn) (一)
  6. OpenStack Austin 峰会观察:OpenStack as IaaS 已是过去,Solutions on OpenStack 才是未来
  7. WPF快速精通版
  8. Session Store
  9. 用PHP实现一个高效安全的ftp服务器(一)
  10. Linux 压缩解压命令
  11. iOS之UILabel自适应大小
  12. 关于在Python2中使用列表推导式会遇到的问题
  13. vsCode 代码不高亮显示的问题
  14. Springboot中Jackson的操作
  15. Docker 从入门到实践(二)Docker 三个基本概念
  16. Python日志模块logging&JSON
  17. IOS 获取的时间显示为NAN 解决方法
  18. TOP100summit:【分享实录-猫眼电影】业务纵横捭阖背后的技术拆分与融合
  19. 019-centos的yum用法
  20. day 84 Vue学习四之过滤器、钩子函数、路由、全家桶等

热门文章

  1. vue中所有的封装方式总结
  2. log 函数
  3. Linux:atime、mtime、ctime
  4. Git与GitHub的快速使用
  5. 《话糙理不糙》之如何在学习openfoam时避免坑蒙拐骗
  6. LeetCode-794 有效的井字游戏
  7. windows-sam文件
  8. Linux开发C++
  9. python + pyqt 实现的你下载css背景图片的小工具(最终版)
  10. Hadoop2.7.3源码编译