################################################################################ # Function: create_temp_dir # Description: Creates a temporary directory # Arguments: $1 :- temporary directory name prefix (required) # Outputs: Prints name of the created temporary directory function create_temp_dir { local prefix="${1:?'create_temp_dir requires a 1st argument: prefix'}" local temp_dir='' until [[ -n "${temp_dir}" && ! -d "${temp_dir}" ]]; do temp_dir="/tmp/${prefix}${RANDOM}${RANDOM}${RANDOM}" done if ! sudo mkdir --parents --mode 0700 "${temp_dir}"; then echo "FATAL: Unable to create temp dir: ${temp_dir}: $?" >&2 exit 1 fi echo "${temp_dir}" trap 'rm --force --recursive "${temp_dir}"' ABRT EXIT HUP INT QUIT }