tree -f > README.md
README="./doc/README.md" # 寫入文件json
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
}bash
function read_files () {
path="./src/routes" # 當前目錄
template="$path/README.md" # 目錄模版
echo '' > $README # 清空文件
# while 讀取文件每一行的內容
while read line
do
ergodic "$line" # 函數調用
done < $template
}
read_files
目錄模版

生成的效果圖
less