Sto cercando di creare una variabile contatore globale per vedere quante volte ~/.profile viene giustiziato. Quindi:
 In ~/.bashrc :
# ... 
if [ "$PROFILE_EXEC_TIMES" = "" ]; then
 export PROFILE_EXEC_TIMES=0
fi
let "PROFILE_EXEC_TIMES += 1"
 
 In ~/.profile :
# ... 
export PROFILE_EXEC_TIMES
let "PROFILE_EXEC_TIMES += 1"
 
 Ma quando apro una nuova shell e scrivo echo $PROFILE_EXEC_TIMES , tutto quello che ottengo è 1 . $PROFILE_EXEC_TIMES deve essere almeno 2. Sospetto che ~/.profile non proviene da bash... se sì, cosa devo fare per controllare quante volte ~/.profile viene eseguito?
 Modifica: 
 Ho notato che /etc/gdm/Xsession sta cercando ~/.profile dalla seguente riga:
test -f "$HOME/.profile" && . "$HOME/.profile"
 
 e ~/.bashrc proviene da ~/.profile dalle seguenti righe:
# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
    . "$HOME/.bashrc"
    fi
fi
 
 Inoltre, ho aggiunto la seguente riga a ~/.bashrc &~/.profile :
echo $(cd ${0%/*} && echo $PWD/${0##*/}) >> /home/myUserName/a
 e ho potuto vedere che solo una riga è stata aggiunta al file dopo aver effettuato l'accesso al mio utente.
 Voglio sottolineare che il mio obiettivo qui è:
Scoprire quante volte ~/.profile viene eseguito quando l'utente effettua l'accesso. 
Dettagli aggiuntivi:
$ uname -a
Linux my-desktop 2.6.32-25-generic #45-Ubuntu SMP Sat Oct 16 19:52:42 UTC 2010 x86_64 GNU/Linux
$ cat /etc/*-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=10.04
DISTRIB_CODENAME=lucid
DISTRIB_DESCRIPTION="Ubuntu 10.04.1 LTS"
 - Il mio /etc/gdm/Xsession
 - Il mio ~/.bashrc
 - Il mio ~/.profile
 
Risposta accettata:
 Dai tuoi commenti sulla mia risposta originale, sembra che la tua vera domanda sia "~/.profile è originato da GNOME?" La risposta è si. Cerca in /etc/gdm/Xsession :
# First read /etc/profile and .profile
test -f /etc/profile && . /etc/profile
test -f "$HOME/.profile" && . "$HOME/.profile"
# Second read /etc/xprofile and .xprofile for X specific setup
test -f /etc/xprofile && . /etc/xprofile
test -f "$HOME/.xprofile" && . "$HOME/.xprofile"
 Risposta originale
Dalla manpage di bash:
 Quando bash viene invocato come shell di login interattiva, o come shell 
 non interattiva con l'opzione –login
, prima
 legge ed esegue i comandi dal file /etc/profile, se quel file
 esiste. Dopo aver letto quel file,
 cerca ~/.bash_profile , ~/.bash_login e ~/.profile , in quest'ordine, e
 legge ed esegue i comandi dal
 primo
 che esiste ed è leggibile.
Quindi potresti avere un file chiamato .bash_profile o .bash_login nella tua home directory. Se uno di questi esiste, bash lo utilizzerà al posto di .profile.
Correlati:come leggere il valore della chiave predefinito con dconf o gsettings?