You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Git仓库路径作为参数传入Bash脚本并检查状态?

如何将Git仓库路径作为参数传入Bash脚本实现状态检查?

我来帮你调整这个脚本,让它能灵活接收命令行传入的仓库路径,不用再硬编码啦!下面是修改后的完整实现,还加了一些实用的校验逻辑:

#!/bin/bash

# 从命令行参数获取所有仓库路径,$@会保留带空格的路径(比如"/home/jeff/My Repo")
repos=("$@")

# 检查用户是否传入了参数
if [ ${#repos[@]} -eq 0 ]; then
    echo "用法: $0 <仓库路径1> [仓库路径2] [仓库路径3]..."
    echo "示例: $0 /home/jeff/github/workshop1 /home/jeff/github/workshop2"
    exit 1
fi

echo ""
echo "Checking ${#repos[@]} repositories for status"
for repo in "${repos[@]}"
do
    echo ""
    echo "****** Checking status for ${repo} ******"
    # 先校验路径是否存在,避免cd失败
    if [ -d "${repo}" ]; then
        # 如果cd失败就跳过当前仓库,不影响后续检查
        cd "${repo}" || continue
        git status
        echo "--- 最近提交日志(简洁版) ---"
        git log --oneline -n 5  # 只显示最近5条日志,避免输出过多内容
        echo "********************"
    else
        echo "⚠️  错误:路径 ${repo} 不存在或不是有效目录"
        echo "********************"
    fi
done

关键修改说明:

  • 替换硬编码数组:把原来固定的repos=(...)改成repos=("$@"),$@会捕获所有命令行传入的参数,还能正确处理包含空格的路径。
  • 增加参数校验:如果用户忘记传路径,脚本会直接打印用法提示并退出,不会执行后续无效操作。
  • 路径存在性检查:提前判断传入的路径是否是有效目录,避免cd失败导致后续命令报错。
  • 优化日志输出:把git log改成简洁模式(--oneline -n 5),只显示最近5条提交记录,你可以根据需要改回原始的git log。

使用方法:

  1. 将代码保存为git-status-checker.sh
  2. 给脚本添加执行权限:chmod +x git-status-checker.sh
  3. 运行时直接传入仓库路径:
./git-status-checker.sh /home/jeff/github/workshop1 /home/jeff/github/workshop2 /home/jeff/github/workshop3

这样你就可以随时传入任意数量的仓库路径,不用每次修改脚本里的硬编码内容啦!

内容的提问来源于stack exchange,提问作者Sam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:26:32