make-scratch-dir () { local name="$1" local pattern='^[a-z0-9\\-]+$' if [[ "$#" != 1 ]]; then echo "Usage: make-scratch-dir <name>" 1>&2 return 1 elif [[ ! "$name" =~ $pattern ]]; then echo "Invalid name: ${name}" fi local full_path="$HOME/tmp/scratch/$(date +%Y%m%d-%H%M%S)-${name}" mkdir -p "${full_path}" pushd "${full_path}" echo "Now in temp dir: ${full_path}" }