Untuk solusi yang lebih kuat saya menggunakan sesuatu seperti berikut ini. Dengan cara itu direktori temp akan selalu dihapus setelah skrip keluar.
Fungsi pembersihan dijalankan pada EXIT
sinyal. Itu menjamin bahwa fungsi pembersihan selalu dipanggil, bahkan jika skrip dibatalkan di suatu tempat.
#!/bin/bash
# the directory of the script
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# the temp directory used, within $DIR
# omit the -p parameter to create a temporal directory in the default location
WORK_DIR=`mktemp -d -p "$DIR"`
# check if tmp dir was created
if [[ ! "$WORK_DIR" || ! -d "$WORK_DIR" ]]; then
echo "Could not create temp dir"
exit 1
fi
# deletes the temp directory
function cleanup {
rm -rf "$WORK_DIR"
echo "Deleted temp working directory $WORK_DIR"
}
# register the cleanup function to be called on the EXIT signal
trap cleanup EXIT
# implementation of script starts here
...
Direktori skrip bash dari sini .
Bash traps .
mktemp -d -t <prefix>