我想找到当前工作目录及其子目录中的所有目录,它们要么是 git 存储库的根目录,要么根本不被 git 跟踪。
为此,我编写了这个 bash 脚本:
#!/bin/bash
export FOUND_UNTRACKED=0
export FOUND_TRACKED=
find . -type d \( \( -exec test -d {}\.git \; -exec /bin/bash -c "export FOUND_TRACKED=$1:$FOUND_TRACKED" {} \; -prune \) -o -exec echo Untracked directory: {} \; -exec /bin/bash -c "export FOUND_UNTRACKED=1" \; \)
echo $FOUND_UNTRACKED
echo $FOUND_TRACKED
find 工作正常,但不幸的是,对 exec 内部环境变量的更改没有传播。即,FOUND_TRACKED
始终为空,FOUND_UNTRACKED
为0。
知道如何让这些东西工作吗?