简体   繁体   中英

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?

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM