#!/bin/sh set -eu usage() { cat <<-'EOF' Usage: tmpname tmpname -h EOF } help() { cat <<-'EOF' Options: -h, --help show this message Generate a temporary name. Examples: Create a temporary file: $ OUT="$(tmpname)"; touch "$OUT"; cmd > "$OUT" `cd` into a temporary directory: $ DIR="$(tmpname)"; mkdir -p "$DIR"; cd "$DIR" EOF } for flag in "$@"; do case "$flag" in --) break ;; --help) usage help exit ;; *) ;; esac done while getopts 'h' flag; do case "$flag" in h) usage help exit ;; *) usage >&2 exit 2 ;; esac done shift $((OPTIND - 1)) echo "${TMPDIR:-/tmp}/uuid-tmpname with spaces.$(uuid)"