0%

记一次使用shell脚本便捷管理Hexo (未接触shell脚本的编写)

搭建了Hexo之后,为了在多设备使用,我把Hexo的主文件也给Git push到了自己的github的一个私人仓库里,这样就有了几个问题,首先每次换设备要反复Git push pull,(小白只会些操作),同时hexo的管理也要多次打开终端,在终端中重复输入命令,那我就想有没有更简单的方法来实现呢,这时候我就想到了一个东西,既然是终端,那应该可以直接写shell脚本吧,于是便有了今天这个文章

1,小白的尝试

因为之前没有写过shell脚本,也没有尝试过在windows运行脚本,我首先进行了一个尝试,首先在Hexo的程序文件里新建了一个文件

名为 清理Hexo缓存并生成静态文件以及预览.sh

然后在里面打上了这段代码

1
hexo clean && hexo g && hexo s

然后直接保存,运行之后发现确实可以使用

于是我如法炮制,直接又写了几个

1
2
#把Hexo程序文件git到仓库
git add . && git commit -m"new" && git push
1
2
#从仓库拉取Hexo文件
git pull
1
2
#推送静态文件
hexo d

之后就变成这样

2,尝试优化

这样弄成脚本运行起来确实舒服很多

但是一堆文件堆在目录下看起来乱糟糟的,我就想到能不能把这些文件组合起来,想到shell里面应该有if函数,我就开始去搜索资料(毕竟不会shell嘛,尝试下)

最后写成了这样

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
echo "请输入数字运行脚本 "
echo "--------------git主程序操作-----------------"
echo "1,把Hexo主程序push到仓库"
echo "2,从仓库pull Hexo主程序"
echo "--------------Hexo主程序相关-----------------"
echo "3,清理Hexo缓存并生成静态文件"
echo "4,推送blog到静态页面"


read -p"请输入要运行的命令<输入数字>" input

if (( $input == 1 )); then
git add . && git commit -m"new" && git push
elif (( $input == 2)); then
git pull
elif (( $input == 3)); then
hexo clean && hexo g && hexo s
elif (( $input == 4 )); then
hexo d
else
echo "...."
fi

read -p"完成任务任意键结束"

毕竟有其他语言的基础写起来确实没什么意外,上网搜索了下需要用到的函数,就写出来了

这样最后成品就变成这样了,以后也可以添加创建新文章的命令进去,毕竟也就一句命令的事情

3,总结

这次写的脚本可以说是非常简单非常简单,但是确确实实方便了我,作为以前没有写过shell脚本的小白,能写出来确实挺开心的,也算是学到了一些东西

也希望以后能学习到shell脚本,写出实用的脚本

参考网址:

read命令_Linux read 命令用法详解:从键盘读取变量值:

https://man.linuxde.net/read

Shell if else语句(详解版)

http://c.biancheng.net/view/1262.html