美文网首页shellShell那些事儿Linux 琐事之123
shell编写的hexo新建文章生成脚本

shell编写的hexo新建文章生成脚本

作者: 2625K | 来源:发表于2017-02-09 10:11 被阅读99次

前言

近期闲来无事,也好久没写文章了,发现使用hexo新建文章的时候每次都要复制粘贴一些配置,实在是相当麻烦,正好前段时间学习了下shell编程,便使用shell写了个脚本来自动生成。

使用方法

假设shell脚本的名字为 newFile.sh,执行下面的命令:

newFile.sh 测试文件 -c 编程 shell -t shell hexo

其中的参数如下:

  • -c : 分类 会根据这个参数值在hexo/source/_posts 目录中创建对应目录
  • -t : 标签 会根据这个参数值在文章中添加标签

执行过后,就会在你的blog hexo的_posts 目录中新建相应的目录和文件,具体如下图:

Paste_Image.png

所生成的文件内容如下:

---
title: 测试文件
category: [编程,shell]
tags: [shell,hexo]
toc: true
date: 2017-02-09 09:38:25
---

这样子就省下了好多事情,省的每次再复制粘贴了,

脚本内容

脚本的使用很简单的,使用之前需要先将你的_post目录写入脚本中保存,之后就可以使用了,脚本内容如下:

#!/bin/bash


Tags=
Category=
Title=
CurState="title"
IsParam="true"
PostPath="/e/blog/source/_posts/" #将这里替换为你的_posts 目录地址
#PostPath="./"
Date=`date +%F`
Date="$Date `date +%T`"

if [ "$#" -lt "1" ];then
    echo "Input Error"
    exit
fi

i=0
j=0
for argv in $*
do
#   echo $argv
    if [ $argv = "-t" ];then
        CurState="Tags"
        IsParam="true"
    elif [ $argv = "-c" ];then
        CurState="Category"
        IsParam="true"
    else 
        IsParam="false"
    fi

    if [ $IsParam = "false" ];then
        if [ $CurState = "Tags" ];then
            let i++
            Tags="$Tags $argv"
        elif [ $CurState = "Category" ];then
            let j++
            Category="$Category $argv"
        else
            Title="$Title $argv"
        fi
    fi
done

#echo "Tags=$Tags"
#echo "Category=$Category"
#echo "Title=$Title"
#echo "CurDate=$Date"
for path in $Category 
do
    if test -d "$PostPath$path" ; then
        PostPath="$PostPath$path/"
        continue
    else
        mkdir $PostPath$path
        PostPath="$PostPath$path/"
    fi
done
for CurFile in $Title
do

    cd $PostPath
    mkdir $CurFile
    CurTitle=$CurFile   
    CurFile="$CurFile.md"
    if [ $j = "1" ];then
        Category=`echo "$Category" |sed -n "s/^[ ]*//gp"` 
    else
        Category=`echo "$Category" |sed -n "s/^[ ]*//gp"|sed -n "s/ /,/gp"` 
    fi

    if [ $i = "1" ];then
        Tags=`echo "$Tags" |sed -n "s/^[ ]*//gp"` 
    else
        Tags=`echo "$Tags" |sed -n "s/^[ ]*//gp"|sed -n "s/ /,/gp"` 
    fi

    echo "---" >>"$CurFile"
    echo "title: $CurTitle" >>"$CurFile"
    echo "category: [$Category]" >>"$CurFile"
    echo "tags: [$Tags]" >>"$CurFile"
    echo "toc: true" >>"$CurFile"
    echo "date: $Date" >>"$CurFile"
    echo "---" >>"$CurFile"

done


相关文章

  • shell编写的hexo新建文章生成脚本

    前言 近期闲来无事,也好久没写文章了,发现使用hexo新建文章的时候每次都要复制粘贴一些配置,实在是相当麻烦,正好...

  • hexo发布新文章

    _posts目录下新建.md文章生成静态文件: hexo g提交到github: hexo d

  • Linux基本Shell脚本的编写

    shell 脚本编写,最基本的构成 最基本的构成如下: !/bin/sh 新建一个脚本,vi test.sh !/...

  • Shell script + crontab实现Mysql定时备

    一、Shell 脚本 Shell 脚本(shell script),是一种为 shell 编写的脚本程序。 业界所...

  • shell脚本

    什么是shell脚本 Shell 脚本(shell script),是一种为 shell 编写的脚本程序。业界所说...

  • 多命令处理

    编写shell脚本 执行脚本

  • Shell脚本语法

    1. Shell脚本简介Shell 脚本(shell script),是一种为 shell 编写的脚本程序。业界所...

  • shell脚本基础

    编写脚本 编程基础 shell脚本 创建shell脚本 变量 运算 测试 配置用户的环境

  • crontab精确到秒实现方式

    编写shell脚本实现 1.新建crontab.sh,插入以下内容 !/bin/bash step=5 #间隔的秒...

  • 78.shell编程

    shell编程 Shell脚本,是一种为shell编写的脚本程序。 Shell编程跟JavaScript、Pyth...

网友评论

  • AlicFeng:我的天呐,判断语句怎么就只有一个=符号
    2625K:@AlicFeng shell 中是一个等号就可以了
    AlicFeng: @砦龑堃 等于☞==或者eq
    2625K: @AlicFeng 确实只有一个

本文标题: shell编写的hexo新建文章生成脚本

本文链接:https://www.haomeiwen.com/subject/rtliittx.html