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
我正在使用 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