为大作业编写简单的shell脚本
为大作业编写简单的shell脚本
起因
对大作业选择刷100道leetcode的同学,老师的要求是
把100段代码和解释心得贴到一个md文档或其它格式文档。比如
cat *.cpp>ans.md
然而,一来呢,我并没有在文件内标注题目和题干,这样做会分不清哪题是哪题;二来呢,把代码直接输入到markdown文档中显示会很丑(因为没有写代码框)
所以我现学现卖,上网查了查shell脚本的语法,看着还行,就决定自己编写一个脚本来处理这个问题
目标
- 由于题目写在文件名里,所以应该是先输出文件名再输出文件内容
- 文件的内容应该是按照题号排序的
- 对文件的内容进行标注,即放在代码块里
- 由于题目数量还在更新,所以应该在文件开头标注日期和题目数
实现思路
删除之前的answer.md->获得当前日期和目录下的cpp文件数目,写入answer.md->扫描当前目录->对每一cpp个文件,先输出文件名->然后加上代码框,即开头加上```cpp->输出文件内容(遍历每一行并输出)->在每个文件末尾追加```作为代码框的结束
代码及注释
1 |
|
其中,#!/bin/bash
指示这是一个用bash运行的shell脚本
folder
是一个变量的,应当改为存放cpp文件的目录
然后删掉folder下的answer.md
接着用变量count
记录cpp文件的数目,date
记录当前的日期
输出日期题目数量到文件中
然后按题号顺序排序,来遍历每一个文件
输出文件名,输出```cpp,然后遍历并输出所有行,最后输出```作为代码框的结束
运行结果
先更改folder变量为目标目录,然后在终端下,输入bash leetcode.sh
,就会在目录下生成需要的answer.md了
发布后如图(先锁起来了)
不过有点问题,因为行数实在太多了,在渲染的时候要花费大量的时间,也没有什么好办法,暂且这样吧
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 HeRen's Blog!
评论