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

时间:2015-04-16 22:16:05

标签: bash directory git-bash

我正在使用Git Bash,我想编写一个脚本,为我的主目录中的每个目录(本地仓库)处理同一组命令。这在DOS中很容易,大多数人认为它最多是残障,所以我确信在bash中有办法实现。

例如,一些伪代码:

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

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

1 个答案:

答案 0 :(得分:1)

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

#! /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 repo文件夹以执行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