1、前言
经过前面那么多节的脚本使用技巧,相信大家一定已经掌握了基本的shell脚本编写,但是可能还是没有想明白,或者想到说平时工作生活中,有什么作用?今天,写写我自己在工作中,一些提高效率的脚本一起来看看吧~
2、git pull 更新
工作中,我们都知道,更新工作代码库:
git pull
但是,有没有想过,如果你有10个库呢?是不是要命令行切换目录输出10次?或者你有Sourcetree,在界面也要切换10次吧?
所以,有没有想过,如果用脚本,能不能一次的把全部的库,都git pull
下来?想到这样,相信大家已经知道,肯定可以啊!
直接上代码(具体的代码,可参考我的Github代码:
#!/bin/bash
# 定义用到的变量
directory_path=""
# 定义读取输入字符的函数
function getDirectoryPath() {
# 输出换行,方便查看
echo "================================================"
# 监听输入并且赋值给变量
read -p " Enter directory path: " directory_path
# 如果为空值,从新监听
if test -z "directory_path"; then
getDirectoryPath
else
read_dir ${directory_path}
fi
}
function read_dir(){
for file in `ls $1` #注意此处这是两个反引号,表示运行系统命令
do
if [ -d $1"/"$file ] #注意此处之间一定要加上空格,否则会报错
then
#在此处处理目录即可
echo "-----------------------------\n"
echo "check directory:《" $file "》"
echo "message:"
cd $1"/"$file
git pull
echo "\n"
fi
done
}
#读取第一个参数
getDirectoryPath
echo "\n------- finish processing -------"
使用方法非常简单,执行脚本,输入在你所有库的根目录,然后脚本会循环所有目录git pull
。当然,如果是公司电脑,那你可以用别名alias
定义一个通用命令来执行,明天早上上班,执行一下,效率满满的!!!
3、git clone 下载
有时候,你换了新电脑,或者像我不小心,电脑挂了,重装系统,新的电脑,需要一个一个库的拉取下来,这时候,你也可以写一个脚本来统一执行:
#!/bin/bash
git clone https://github.com/iHTCboy/OneMindMap.git;
git clone https://github.com/iHTCboy/NotesEveryDay.git;
git clone https://github.com/iHTCboy/macOSConfig.git;
编写自己的库或公司库脚本,放到git仓库,是不是又学到一招!
4、git commit
这个大家应该想到了吧?可以放到 .bash_profile
或 .zshrc
当成一个别名使用:
function glazy() {
git add .
git commit -a -m "$1"
git push
}
使用方法很简单:glazy 'XXXX'
就可以一步到位:
iShell git:(master) glazy 'shell技巧6 - iOS最大构建版本文件大小'
[master 15a0b97] shell技巧6 - iOS最大构建版本文件大小
1 file changed, 72 insertions(+)
create mode 100644 Shell/calculate_Mach-0__Text-Size .sh
Counting objects: 4, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 1.52 KiB | 1.52 MiB/s, done.
Total 4 (delta 2), reused 0 (delta 0)
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
To https://github.com/iHTCboy/iShell.git
6f39dfe..15a0b97 master -> master
5、备份文件
为了避免数据掉失,我会经常定时备份博客的文档,如果需要人工手动,重复,反复,一个一个,切换目录,其实,写一个脚本就搞定:
#!/bin/bash
blog_dir="/Users/HTC/Documents/Personal/P-Project/iHTCBlog/source/"
backup_dir="/Users/HTC/Documents/Personal/P-Project/macOSConfig/iHTCboy_Blog/"
# copy files
cp -r "${blog_dir}" "${backup_dir}"
# delete drafts file
rm -rf "${backup_dir}/_drafts"
当然,为了方便,不可能每次都打开终端才执行,如果Mac或Linux,可以用 Unix 可执行文件,直接点击,会自动打开终端执行。
比如脚本叫 backup_sh.sh
改为 backup_sh
名字,然后在终端为文件添加可执行权限:chmod +x /Users/HTC/Desktop/backup_sh
以后,直接双击backup_sh
这个文件,就会自动在终端执行,备份完成!
6、总结
关于shell脚本就讲到这里,更多技巧和提交效率的方式,希望大家能举一反三,这都是授鱼不如授渔!
参考
- 如有疑问,欢迎在评论区一起讨论!
- 如有不正确的地方,欢迎指导!
注:本文首发于 iHTCboy's blog,如若转载,请注来源