Explain why .bash_logout won't run commands?

Posted by Droogans on Super User See other posts from Super User or by Droogans
Published on 2012-04-09T22:06:20Z Indexed on 2012/04/09 23:36 UTC
Read the original article Hit count: 185

So I've been wondering how to run these two lines of code everytime I close an open instance of Terminal:

history -c
cat /dev/null > ~/.bash_history

I export HISTFILE=5 on startup, but still want to flush that out when I'm done.

I've tried looking around a bit in a couple of places, and haven't had much luck.

I run Linux Mint, and would also note here that I ran into a similar issue with .bash_profile; eventually, I discovered I needed to place all start up code in .bashrc, so maybe that has something to do with it. Here's my .bash_logout file:

#!/bin/bash
# ~/.bash_logout: executed by bash(1) when login shell exits.

# when leaving the console clear the screen to increase privacy

if [ "$SHLVL" = 1 ]; then
    history -c
    cat /dev/null > ~/.bash_history
    [ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q
fi

#this does nothing on exit...
echo 'logout'; sleep 2s

I've tried re-arranging this script many ways, I'm not sure if I don't understand how bash works, and if any of this is running in the first place. Does the fact that I run Xserver make bash consider Terminal something that isn't a log-out on exit?

© Super User or respective owner

Related posts about terminal

Related posts about linux-mint