shell技巧7 - git提高效率的一些用法

简介: 1、前言经过前面那么多节的脚本使用技巧,相信大家一定已经掌握了基本的shell脚本编写,但是可能还是没有想明白,或者想到说平时工作生活中,有什么作用?今天,写写我自己在工作中,一些提高效率的脚本一起来看看吧~2、git pull 更新工作中,我们都知道,更新工作代码库:git pull...

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这个文件,就会自动在终端执行,备份完成!

注:其它方法可参考 shell技巧1 - 生成ipa文件 | iHTCboy's blog 第5小节。

6、总结

关于shell脚本就讲到这里,更多技巧和提交效率的方式,希望大家能举一反三,这都是授鱼不如授渔!

参考


  • 如有疑问,欢迎在评论区一起讨论!
  • 如有不正确的地方,欢迎指导!


注:本文首发于 iHTCboy's blog,如若转载,请注来源


目录
相关文章
|
2月前
|
存储 运维 Shell
shell中for while until 三种循环的用法
shell编程中,有几种常见的循环结构,包括for循环、while循环和until循环,总的来说,循环shell编程中扮演着至关重要的角色,它们使得自动化任务变得更加容易,提高了效率,并且可以处理各种各样的编程需求。
278 13
shell中for while until 三种循环的用法
|
2月前
|
人工智能 数据可视化 开发工具
Git log 进阶用法(含格式化、以及数据过滤)
Git log 进阶用法(含格式化、以及数据过滤)
|
2月前
|
存储 Shell Linux
【Shell 命令集合 文件管理】Linux git命令使用教程
【Shell 命令集合 文件管理】Linux git命令使用教程
65 0
|
9月前
|
存储 Shell Linux
Shell 编程:探索 Shell 的基本概念与用法
Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。 Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。 Shell 脚本(shell script),是一种为 shell 编写的脚本程序,shell 和 shell script 是两个不同的概念。
104 0
|
9月前
|
开发工具 git
【Git用法】git常用命令
【Git用法】git常用命令
44 0
|
9月前
|
监控 Shell Linux
Linux Shell高级用法:优化和自动化你的工作流程
Linux Shell是一个非常强大的工具,可以用于自动化任务、处理文本和数据、进行系统管理等。在这篇文章中,我们将介绍一些Linux Shell的高级用法,帮助你更高效地利用Shell完成各种任务。
138 0
|
2月前
|
Shell Perl
shell学习(九) 【shell sed用法】
shell学习(九) 【shell sed用法】
34 0
|
2月前
|
Shell C语言 C++
【Shell 编程指南】shell中的(),{}几种语法用法
【Shell 编程指南】shell中的(),{}几种语法用法
26 0
|
2月前
|
Shell Linux 开发工具
【Shell 命令集合 系统管理 】Linux 查看当前Git仓库的提交历史 gitps命令 使用指南
【Shell 命令集合 系统管理 】Linux 查看当前Git仓库的提交历史 gitps命令 使用指南
41 0
|
11月前
|
Shell 开发工具 git
教你写一个快速提交git代码的shell脚本(二)
教你写一个快速提交git代码的shell脚本(二)