#!/bin/bash directories=$(find ~/code/work ~/code/personal -mindepth 1 -maxdepth 1 -type d) for dir in $directories do cd "$dir" is_git=$(git -C $dir rev-parse 2>/dev/null) exit_code=$(echo $?) [[ $exit_code != 0 ]] && continue git_status=$(git -C $dir status --porcelain 2>/dev/null) [[ -z $git_status ]] && continue echo "$dir" done