专栏首页35岁开始自学编程作死作死,完美主义,又“重写”了

作死作死,完美主义,又“重写”了

最开始根据需求写了执行脚本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

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 刷题翻车:python 布尔运算操作符的优先级

    前两天在 xue.cn 体验答题挑战,我有道题做错了,却不明白错在哪里。题目大概如下,代码运行后将打印什么?

    刘娟娟PRESSone
  • Github进行fork后如何与原仓库同步

    实在是……有太多人同时在帮忙修订错别字或优化 xiaolai 的 the-craft-of-selfteaching 了。如果你提交的 pull request...

    刘娟娟PRESSone
  • 学习的最大动力是想要更加减少重复性工作

    支持脚本。该脚本做成后,变动性很小。——这个调用脚本是写完主处理脚本后,发现主处理脚本变动频繁,想起来为了简化操作,就做了这么个支持脚本。

    刘娟娟PRESSone
  • 执行sh文件 进行MongoDB的业务逻辑导入

    将从HDFS中的数据转化为Json格式写入文件后,十个文件的文件名为 文件名_01 ...._02 ....03格式。 编写个简单的sh文件 通过for do循...

    用户3003813
  • shell的进阶上

    shell script 其实就是纯文本档,我们可以编辑这个文件,然后让这个文件来帮我们一次执行多个指令,或者是利用一些运算与逻辑判断来帮我们达成某些功能。所以...

    小柒吃地瓜
  • 查看RocketMQ Tps命令【实战笔记】

    瓜农老梁
  • python3 eval()函数

    eval()函数十分强大,官方demo解释为:将字符串str当成有效的表达式来求值并返回计算结果。

    py3study
  • python测试开发django-77.ORM如何添加 DateTimeField 不显示毫秒

    使用 django 的 orm 建模型的时候,添加 DateTimeField 字段,发现存到数据库的日期时间格式是’2020-06-28 21:30:48.4...

    上海-悠悠
  • 还在「黑盒炼丹」? 教你如何实现一行代码透视炼丹过程

    这剂解药就是VisualDL 2.0——飞桨可视化分析工具全面改版升级,帮众位开发者们从 「炼丹萌新」 变身「太上老君」。

    机器之心
  • 今日头条技术架构分析

    来源:blog.csdn.net/mucaoyx/article/details/84498468

    互扯程序

扫码关注云+社区

领取腾讯云代金券