#!/bin/bash TARGET_DIR="programs" if [ ! -d "$TARGET_DIR" ]; then exit 1 fi find "$TARGET_DIR" -type f \( -name "Makefile" -o -name "makefile" \) | while read -r makefile_path; do dir_path=$(dirname "$makefile_path") ( cd "$dir_path" || exit make clean make ) done