#!/bin/sh # # Generally, utilities that I expected to exist in POSIX, but don't. # uuid() { od -xN20 /dev/urandom | head -n1 | awk '{OFS="-"; print $2$3,$4,$5,$6,$7$8$9}' } tmpname() { printf '%s/uuid-tmpname with spaces.%s' "${TMPDIR:-/tmp}" "$(uuid)" } mkstemp() { name="$(tmpname)" touch -- "$name" printf '%s' "$name" } mkdtemp() { name="$(tmpname)" mkdir -- "$name" printf '%s' "$name" }