zoukankan      html  css  js  c++  java
  • 作死作死,完美主义,又“重写”了

    最开始根据需求写了执行脚本Dojob。

    后来发现执行脚本变动比较频繁,需要反复执行dos转换为unix,于是做了一个DojobH,即支持脚本——包装了3条固定操作

    1、转换Dojob从dos到unix,就是移除回车符,生成一个临时文件DojobUnix

    2、执行DojobUnix

    3、移除DojobUnix

    这样,可以随意更改Dojob的主体,然后直接运行DojobH就可以了。H是hero的简写哦。

    但是发现有了更多的需求,需要写第二个Dojob2、第三个执行脚本Dojob3,每个执行脚本都要一个H脚本Dojob2H,Dojob3H吗?

    不行。那样的话,不是又重复写代码了?文件也多了起来。

    于是又写了一个脚本,把文件名作为变量,使用了读取屏幕输入read方法,使其可通用

    1、从屏幕输入获取dos文件名

    2、执行转换Dojob从dos到unix,就是移除回车符,生成一个临时文件DojobUnix

     1 #!bin/bash
    2 echo 开始:把f/test/的.sh文件从dos转换为unix风格
    3 ls #列出文件列表
    4 echo 输入:f/test/下的.sh文件名,如npcinmapcheck #给予输入提示
    5 read filename #从屏幕输入读取dos文件名
    6 filenameunix=Unix${filename} #定义unix文件名
    7 #rm -i $filenameunix.sh
    8 cat $filename.sh | tr -d '\r' > $filenameunix.sh #执行转换,移除回车符
    9 chmod +x $filenameunix.sh #使之可运行
    10
    11 #部分脚本有特例处理
    12 echo 结束:${filename}.sh已经被转换为${filenameunix}.sh #给予处理结束提示
    13 case ${filename} in
    14 "DropRate" ) echo ${filenameunix}.sh需进入release/bin/目录下使用 && cp ${filenameunix}.sh ../expansion_2011winter_quest/bin/${filenameunix}.sh;;
    15 "droprate" ) echo ${filenameunix}.sh需进入release/bin/目录下使用 && cp ${filenameunix}.sh ../expansion_2011winter_quest/bin/${filenameunix}.sh;;
    16 *) echo Job is Done ;;
    17 esac

    但是还是不满意,为啥咧,因为这相当于复制了一个新文件,会让文件特别多。于是又增加了两项处理:

    1、转换后只保留原始文件

    2、追加了修改时间批注

    另外顺手改了其它几处细节。

     1 #!bin/bash
    2 echo 开始:把f/test/的.sh文件从dos转换为unix风格
    3 ls #列出文件列表
    4 echo 输入:f/test/下的.sh文件名,如npcinmapcheck.sh #给予输入提示
    5 read filename #从屏幕输入读取dos文件名
    6 filenameunix=Unix${filename} #定义unix文件名
    7 cat $filename | tr -d '\r' > $filenameunix #执行转换,移除回车符
    8 cat $filenameunix > $filename #用unix文件覆盖dos文件
    9 rm -rf $filenameunix #删除unix文件
    10 echo -e '\n\n\n''#'脚本最后一次修改日期:`date` >> $filename #添加修改批注
    11 #部分脚本有特例处理
    12 case $filename in
    13 "DropRate.sh" ) echo 提醒:${filename}需进入release/bin/目录下使用 && cp $filename ../expansion_2011winter_quest/bin/${filename};;
    14 "droprate.sh" ) echo 提醒:${filename}需进入release/bin/目录下使用 && cp $filename ../expansion_2011winter_quest/bin/${filename};;
    15 *.sh) echo Job is Done ;;
    16 esac
    17
    18
    19 #脚本最后一次修改日期:2011年11月 4日 14:44:47

    如果修改太频繁,脚本追加记录会越来越多啊——不过作为版本历史用来判断脚本的变动程度也是可行的。。看情况再说。

  • 相关阅读:
    4G(LTE)背后的技术和利益纠结——VoIP,VoLTE,SIP,IMS的前世今生
    Windows抓取本地回环数据包
    SIP中的早期媒体与回铃音的产生
    SpringMVC整合
    浮点数转换为十进制
    将Sublime Text 2搭建成一个好用的IDE
    python3 'gbk' codec can't decode byte 0x80 in position 读取文件编码集错误的一个bug
    Matplotlib入门教程
    turtle教程-Python绘图
    python画图模块之一:turtle(1) 画五角星、正方形等
  • 原文地址:https://www.cnblogs.com/jjliu/p/2236233.html
Copyright © 2011-2022 走看看