文章目录
-
- [git,bash - 例子整理](#git,bash - 例子整理)
- 概述
- 笔记
- 遍历目录,找到目标文件后干活
- END
git,bash - 例子整理
概述
在git bash中的脚本和linux bash中好像差不多。
整理一些例子,为以后做参考
笔记
遍历目录,找到目标文件后干活
bash
#!/bin/bash
# git bash 脚本 - 遍历修改当前目录下得所有 .gitmodules , 替换https 库 url 到 ssh 库 url
# 前置操作 : 写好my_task.sh后,给执行权限
# chmod 777 ./my_task.sh
# 前置操作 : 检查脚本的语法是否正确?
# bash -n my_task.sh
# 如果没看到输出,就说明脚本语法是正确的
# 运行脚本
# 进入到脚本的目录
# ./my_task.sh
clear
echo "---------- my_task.sh running ----------"
# echo "current user:(" $(whoami) ")"
# log begin time
echo "begin : ($(date '+%Y-%m-%d %H:%M:%S'))"
# =号两边不能有空格
file_cnt=0
find . -type f -name ".gitmodules" -print0 | while IFS= read -r -d '' file; do
dir=$(dirname "$file")
(
cd "$dir" || { echo "⚠️ dir switch err: $dir"; exit 1; }
# echo "finding $(pwd)/.gitmodules"
if [ -f "$(pwd)/.gitmodules" ]; then
echo "!!! ($((file_cnt + 1))) was found $(pwd)/.gitmodules, ready to process"
sed -i 's|https://github.com/|git@github.com:|g' .gitmodules
git submodule sync --recursive
fi
)
file_cnt=$((file_cnt + 1))
done
# log end time
echo "end : ($(date '+%Y-%m-%d %H:%M:%S'))"