#!/bin/bash set -euo pipefail SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" function buildtestpublish() { local dir="$1" cd "$dir" echo "Building $(basename "$dir")" } function buildtestpublish_all() { PREVIOUS_DIR=$(pwd) # find all subdirectories in the current directory that don't begin with a dot find "$SCRIPT_DIR" -maxdepth 1 -type d \ -not -name ".*" \ -not -path "$SCRIPT_DIR" \ -print0 | while IFS= read -r -d '' dir; \ do buildtestpublish "${dir}" done cd "$PREVIOUS_DIR" } buildtestpublish_all