Making tmp Files and Directories On The Command Line
September - 2021
Use mktmp
See the examples from man mktmp
tempfoo=basename $0
TMPFILE=mktemp /tmp/${tempfoo}.XXXXXX
|| exit 1
echo "program output" >> $TMPFILE
To allow the use of $TMPDIR:
tempfoo=basename $0
TMPFILE=mktemp -t ${tempfoo}
|| exit 1
echo "program output" >> $TMPFILE
In this case, we want the script to catch the error itself.
tempfoo=basename $0
TMPFILE=mktemp -q /tmp/${tempfoo}.XXXXXX
if [ $? -ne 0 ]; then
echo "$0: Can't create temp file, exiting..."
exit 1
fi
On mac, it'll use a directory something like:
/var/folders/dx/ypcmcxd53mb731bpkp_2p_vh0000gn/T/
That's what's set in $TMPDIR
It'll use $_CS_DARWIN_USER_TEMP_DIR
if that's set instead. If neither of those are set, it'll fall back to /tmp