#!/bin/bash find -type f \( -iname '*.c' -o -iname '*.cpp' \) -print | while read filename do case "$filename" in *.c) gcc "$filename" -o "$(dirname "$filename")"/"$(basename "$filename" .c)" ;; *.cpp) gcc "$filename" -o "$(dirname "$filename")"/"$(basename "$filename" .cpp)" ;; esac done //shell/1261