Ich versuche, eine globale Zählervariable zu erstellen, um zu sehen, wie oft ~/.profile hingerichtet wird. Also:
 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"
 Aber wenn ich eine neue Shell öffne und schreibe echo $PROFILE_EXEC_TIMES , alles, was ich bekomme, ist 1 . $PROFILE_EXEC_TIMES muss mindestens 2 sein. Ich vermute, dass ~/.profile wird nicht von bash bezogen … wenn ja, was muss ich tun, um zu überprüfen, wie oft ~/.profile wird ausgeführt?
 Bearbeiten: 
 Mir ist aufgefallen, dass /etc/gdm/Xsession bezieht ~/.profile durch die folgende Zeile:
test -f "$HOME/.profile" && . "$HOME/.profile"
 und ~/.bashrc wird in ~/.profile bezogen durch die folgenden Zeilen:
# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
    . "$HOME/.bashrc"
    fi
fi
 Außerdem habe ich die folgende Zeile zu ~/.bashrc hinzugefügt &~/.profile :
echo $(cd ${0%/*} && echo $PWD/${0##*/}) >> /home/myUserName/a
und konnte sehen, dass der Datei nur eine Zeile hinzugefügt wurde, nachdem ich mich bei meinem Benutzer angemeldet hatte.
 Ich möchte betonen, dass mein Ziel hier ist:
Herauszufinden, wie oft ~/.profile wird ausgeführt, wenn sich der Benutzer anmeldet. 
Zusätzliche Details:
$ 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"
- Meine /etc/gdm/Xsession
- Meine ~/.bashrc
- Mein ~/.profil
Akzeptierte Antwort:
 Aus Ihren Kommentaren zu meiner ursprünglichen Antwort geht hervor, dass Ihre eigentliche Frage lautet:„Ist ~/.profile von GNOME bezogen?“ Die Antwort ist ja. Schauen Sie in /etc/gdm/Xsession nach :
# 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"
Originalantwort
Aus der Manpage von bash:
 Wenn bash als interaktive Login-Shell oder als
 nicht interaktive Shell mit der Option –login
 aufgerufen wird, liest es zuerst
 Befehle aus der Datei /etc/profile und führt sie aus, falls diese
 Datei existiert. Nach dem Lesen dieser Datei
 sucht es nach ~/.bash_profile , ~/.bash_login , und ~/.profile , in dieser Reihenfolge, und
 liest und führt Befehle aus dem
 ersten
 aus, der existiert und lesbar ist.
Sie haben also möglicherweise eine Datei namens .bash_profile oder .bash_login in Ihrem Home-Verzeichnis. Wenn eines davon existiert, verwendet Bash es anstelle von .profile.
Verwandte:Wie liest man den Standardschlüsselwert mit dconf oder gsettings?