! /bin/bash
生成项目的目录结构
必须显示完整的目录,文件头部内容才能写入到指定的文件中
配合tree命令使用,可以生成文件树,通过tree生成一个文档,读取这个文档中的目录内容,生成README文档
tree -f > README.md
README="./doc/README.md" # 写入文件
获取目录下所有的文件
function ergodic ()
{
# $1 表示函数的第一个参数
# ##*./ 表示从左边开始删除最后(最右边)一个 ./ 号及左边的所有字符
file_path=${1##*./} # 删除文件路径左边的所有字符
file="$path/$file_path" # 拼接路径
left_name=${1%'./'*} # 获取字符串./左边的内容
right_name=${1##*'/'} # 获取字符串/右边的内容
name="$left_name$right_name" # 拼接字符串
# 判断文件
if test -f $file
then
# 判断文件存在并且文件大小大于0
if [ -s $file ]
then
# 判断文件的后缀名
if [[ "${file##*.}" = "js" || "${file##*.}" = "jsx" ]]
then
# 读取文件第二行的内容
title=$(awk "NR==2" $file)
# ${title##''} 读取*(星号)后面的内容
# 判断title是否包含 *
if [[ $title =~ '*' ]]
then
echo "$name" "${title##''}" >> $README # 写入文件
else
echo "$name" "该文件没有头部注释或格式不对" >> $README # 写入文件
fi
# 样式
elif [ "${file##*.}" = "less" ]
then
echo "$name" '样式' >> $README # 写入文件
# 静态文件
elif [[ "${file##*.}" = "jpg" || "${file##*.}" = "png" ]]
then
echo "$name" '静态文件' >> $README # 写入文件
# json文件
elif [ "${file##*.}" = "json" ]
then
echo "$name" 'json文件' >> $README # 写入文件
else
echo "$name" >> $README # 写入文件
fi
# 文件为空时
else
echo "$name" '该文件为空,请及时查看' >> $README # 写入文件
fi
# 判断目录
elif test -d $file
then
echo "$name" >> $README # 写入文件
# 判断文件是否存在
elif [[ $file =~ 'directories' || $file =~ 'files' ]]
then
echo "$name" >> $README # 写入文件
else
# echo "$name" >> $README # 写入文件
echo "$name" '该文件不存在,请及时更新目录模版文件' >> $README # 写入文件
fi
}
读取目录模版
function read_files () {
path="./src/routes" # 当前目录
template="$path/README.md" # 目录模版
echo '' > $README # 清空文件
# while 读取文件每一行的内容
while read line
do
ergodic "$line" # 函数调用
done < $template
}
read_files
目录模版

生成的效果图

**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。