shell根据模板创建源程序
来源:互联网 发布:大数据网站 编辑:程序博客网 时间:2024/05/16 10:08
create XXX.py时用template.py创建初始的python脚本
同样可以创建java、scala、shell程序文件
#!/bin/bashset -o nounsetset -o errexitif [[ $# -ne 1 ]]; then echo need 1 parameter for filename to create echo filename should be XXX.scala XXX.py or XXX.sh exit 1fibindir=`dirname $0`file="$1"ext=${file##*.}classfullpath=${file%.*}classname=${classfullpath##*.}packagename=${classfullpath%.*}if [[ -f "${classname}.${ext}" ]]; then echo file "${classname}.${ext}" is already exists exit 1ficase ${ext} in scala) templatefile=${bindir}/templates/template.scala ;; java) templatefile=${bindir}/templates/template.java ;; py) templatefile=${bindir}/templates/template.py ;; sh) templatefile=${bindir}/templates/template.sh ;; *) echo 'invalid filename' exit 1esacsed "s/\${CLASSNAME}/${classname}/g" ${templatefile} | sed "s/\${PACKAGENAME}/${packagename}/g" > "${classname}.${ext}"
scala模板例
object ${CLASSNAME} { def main(args : Array[String]) = { val config = getProperties("../conf/${CLASSNAME}.conf") // get config example : val value = config.get("output") // add code here println("Hello world!"); } def getProperties(conffile:String) : Map[String,Any] = { var config = new java.util.Properties(); try { config.load(new java.io.FileInputStream(conffile)); } catch { case _: Exception => ; } val map = scala.collection.JavaConversions.mapAsScalaMap(config).map(t=>(t._1.toString()->t._2)) return map.toMap } def runOther(scriptfile:String, args:Array[String]=Array[String]()) = { scala.tools.nsc.MainGenericRunner.main(scriptfile +: args) }}
java模板例
class ${CLASSNAME} { public static void main(String[] args) { java.util.Properties config = getProperties("../conf/${CLASSNAME}.conf"); // get config example : String value = (String) config.get("output") // add code here System.out.println("Hello world!"); } public static java.util.Properties getProperties(String conffile) { java.util.Properties config = new java.util.Properties(); try { config.load(new java.io.FileInputStream(conffile)); } catch(Exception e) { } return config; } public static void runOther(String classname, String[] args) throws Exception { Class clazz = Class.forName(classname); clazz.getMethod("main",args.getClass()).invoke(clazz.newInstance(), args); }}
python模板例
#!/usr/bin/python#coding=utf-8import sysdef main(argv): config = getProperties("../conf/${CLASSNAME}.conf") #get config example : value = config.get('setting', 'output') # add code here print("hello world!")def getProperties(filename): import ConfigParser config = ConfigParser.ConfigParser() try: config.readfp(open(filename,"rb")) except Exception: pass return configdef runOther(filename, argv): import subprocess subprocess.call(["python",filename] + argv)if( __name__ == "__main__" ): main(sys.argv)
shell模板例
#!/bin/bashset -o nounsetset -o errexitworkdir=$(dirname $0)cd ${workdir}declare -a argsfor((i=0;i<=$#;i++))do eval args[${i}]=\"\${${i}}\"donefunction main(){ getProperties "../conf/${CLASSNAME}.conf" keys values #get config example : value=$(findValue key keys values) # add code here echo "Hello world!"}function getProperties(){ localfilename="$1" localkeys="$2" localvalues="$3" unset ${localkeys} unset ${localvalues} locali=0 if [[ -f "${localfilename}" ]]; then while read line do if [[ "${line:0:1}" != "[" ]]; then localkey=${line%%=*} if [[ "${localkey}" != "" ]]; then eval ${localkeys}[${locali}]=\"${localkey}\" eval ${localvalues}[${locali}]=\"${localvalue}\" let locali=${locali}+1 fi fi done < "${localfilename}" fi}function findValue(){ localkey="$1" eval localkeys=(\"\${$2[@]}\") eval localvalues=(\"\${$3[@]}\") for((locali=0; locali<${#localkeys[@]}; locali++)) do if [[ "${localkey}" == "${localkeys[${locali}]}" ]]; then localvalue="${localvalues[${locali}]}" break fi done echo ${localvalue}}function runOther(){ filename="$1" args="$2" bash ${filename} "${args[@]}"}main "${args[@]}"
0 0
- shell根据模板创建源程序
- shell根据模板创建目录
- delphi 根据EXCEL模板创建
- shell创建简单配置文件模板
- Java根据模板创建excel文件
- Java根据模板创建excel文件
- Java根据html模板创建 html文件
- 软件著作权源程序模板
- C#根据自己的模板来创建类
- sharepoint 2010 根据自定义网站模板创建网站error解决方法
- Linux下使用Shell根据txt文件批量创建目录
- 一个wince c++ 模板源程序
- c8051f020单片机基层源程序模板
- Linux下使用Shell脚本快速创建项目目录模板
- shell命令行,一键创建 python 模板文件脚本
- shell模板
- 根据模板生成word
- 根据模板生成Excel
- Mysql 如果数据存在则更新,不存在则插入
- 如何建一個新的git project server and client心得
- IOS-解决自定义UIImagePickerController 后的图片翻转问题
- 数据库三大范式
- Java深入 - Java JNI详解
- shell根据模板创建源程序
- select多路复用
- 在查找预编译头使用时跳过解决
- Android中图像特效处理(圆角、倒影)
- 车牌识别技术
- 跟我一起学extjs5(10--使用MVVM控制菜单样式,含前10节源码)
- 【C语言学习】C语言中的函数
- ArcEngine开发——从TocControl上获取鼠标点击位置的信息(转载)
- Java—JUnit测试