shell 批量更新版本库

公司项目比较多,每次都要一个一个项目更新版本库很麻烦也很浪费时间,所以抽空写了个shell脚本来批量更新项目版本库
代码如下:

#!/usr/sh

# 定义用到的变量
directory_path=""

# 定义读取输入字符的函数
function getDirectoryPath() {
    # 输出换行,方便查看
    echo "================================================"
    # 监听输入并且赋值给变量
    read -p " 请输入项目根路径: " directory_path
    
    echo "================================================"
    # 如果为空值,重新监听
    if test -z "directory_path"; then
        getDirectoryPath
    else
        startGit ${directory_path}
    fi
}

function startGit() {
    if [ -d $1 ];
    then
        cd $1
        for dir in $(ls -l ./ |awk '/^d/ {print $NF}')
        do
            dir_or_file=$1"/"$dir
            cd $1"/"$dir
            if [ -d ".git" ];  # 此处根据该目录下是否有 .git 文件夹来判断是否版本库所在文件夹
            then
                echo " ------ \033[32m  $dir \033[0m 开始更新 ------ "
                result=`git branch | grep "*"` # 获取分支名
                current_branch=${result:2} # 去除多余的* 获取当前分支
                echo "当前分支 \033[35m  $current_branch \033[0m"
                git pull origin $current_branch
                echo " ------ \033[32m $dir \033[0m 更新完成 ------ \n"
            else
                startGit $dir_or_file
            fi
        done
    else
        echo "$1 不是一个有效的目录"
    fi
}

getDirectoryPath
echo "\n------- 所有项目已经更新完成 -------"

脚本使用

 ly@phperLi  ~/Downloads  sh xx.sh

然后输入项目所在目录的跟目录
效果如下图所示


image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容