shell 配合tree使用,生成帶有文件頭部註釋的目錄樹

! /bin/bash

生成項目的目錄結構

必須顯示完整的目錄,文件頭部內容才能寫入到指定的文件中

配合tree命令使用,能夠生成文件樹,經過tree生成一個文檔,讀取這個文檔中的目錄內容,生成README文檔

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

相關文章
相關標籤/搜索