Geralmente, se você deseja armazenar o estado de cada usuário, a maneira mais fácil é simplesmente criar um diretório dedicado para o aplicativo no diretório inicial dos usuários:
CFGDIR="${HOME}/.mycoolapp"
mkdir -p ${CFGDIR}
# read / write files in ${CFGDIR} here..
Se você quiser apenas um armazenamento temporário para uma instância do script, uma boa abordagem é usar o mktemp. Por exemplo:
TMPDIR="$(mktemp -d)"
# read / write files in ${TMPDIR} here..
rm -rf ${TMPDIR}