Jim Fell
Jim Fell

Reputation: 14254

Bash Shell Script Process Each Directory in Home

I am using Git Bash, and I would like to write a script that processes the same set of commands for each directory (local repo) in my home directory. This would be easy enough in DOS, which most consider as handicapped at best, so I'm sure there's a way to do it in bash.

For example, some pseudo-code:

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

Does anyone know how to do this in Bash?

Upvotes: 1

Views: 529

Answers (1)

VonC
VonC

Reputation: 1327004

You can do that in bash (even on Windows, if you name your script git-xxx anywhere in your %PATH%)

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

As mentioned in "Git Status Across Multiple Repositories on a Mac", you don't even have to cd into the git repo folder in order to execute a git command:

#! /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

Upvotes: 1

Related Questions