#!/bin/sh set -e [ -n "$DEBUG" ] && set -x append= while getopts ah opt; do case "$opt" in a) append=1 ;; h | ?) printf "usage: %s [-ah]\n\n" "$(basename "$0")" exit 2 ;; esac done shift $((OPTIND - 1)) outname=$1 tmpfile=$(mktemp) trap '{ rm "$tmpfile"; }' EXIT cat - >"$tmpfile" if [ -n "$outname" ]; then ( if [ -n "$append" ]; then tee -a "$outname" >/dev/null else tee "$outname" >/dev/null fi ) <"$tmpfile" else cat "$tmpfile" fi