Bash Shell 脚本处理主目录中的每个目录

Bash Shell Script Process Each Directory in Home

我正在使用 Git Bash,我想编写一个脚本来为我的主目录中的每个目录(本地存储库)处理相同的命令集。这在 DOS 中很容易,大多数人认为 DOS 充其量是有缺陷的,所以我相信在 bash.

中有一种方法可以做到这一点

例如一些伪代码:

ls --directories-in-this-folder -> $repo_list
for each $folder in $repo_list do {
  ...my commmand set for each repo...
}

有人知道如何在 Bash 中执行此操作吗?

您可以在 bash 中执行此操作(即使在 Windows 中,如果您将脚本命名为 git-xxx %PATH% 中的任意位置)

#! /bin/bash
cd /your/git/repos/dir
for folder in $(ls -1); do
  cd /your/git/repos/dir/$folder
  # your git command
done

如“Git Status Across Multiple Repositories on a Mac”中所述,您甚至不必 cd 进入 git 存储库文件夹即可执行 git 命令:

#! /bin/bash
cd /your/git/repos/dir
for folder in $(ls -1); do
  worktree=/your/git/repos/dir/$folder
  gitdir=$worktree/.git # for non-bare repos
  # your git command
  git --git-dir=$gitdir --work-tree=$worktree ...
done