Ich benutze Ubuntu 16.04. In meinem $HOME/.profile
hat es.profile hat Anweisungen, um .bashrc aufzurufen, aber .bashrc nicht ausgeführt
echo `date` ':.profile executed starts' >> /tmp/testtmp.txt
echo $BASH_VERSION >> /tmp/testtmp.txt
if [ -n "$BASH_VERSION" ]; then
echo 'if 1 entered' >> /tmp/testtmp.txt
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
echo 'if 2 entered' >> /tmp/testtmp.txt
. "$HOME/.bashrc"
fi
else
echo 'if 1 not entered' >> /tmp/testtmp.txt
fi
Jedes Mal, wenn ich anmelden, es erreicht nicht einmal die erste IF
.
Die Testdatei zeigt:
Sat Jan 14 05:15:57 EST 2017 :.profile executed starts
if 1 not entered
Sat Jan 14 05:15:57 EST 2017 :.profile executed ends
ich BASH_VERSION $ hallte, zeigt es 4.3.46(1)-release
. Wenn also if [ -n "$BASH_VERSION" ]
überprüft werden soll, ob diese Variable existiert (anscheinend ja), warum erreicht sie nicht einmal die erste IF?
Aus dem Ergebnis sieht es aus wie $ BASH_VERSION wird nicht generiert, bis ich die Terminal-Anwendung zum ersten Mal aufgerufen habe.
Da diese IF-Anweisungen in .profile original sind, verstehe ich nicht, wenn $ BASH_VERSION nicht generiert wird, wenn Sie sich anmelden, was ist der Zweck, diese Anweisungen ursprünglich zu haben.
Dank
Woher weißt du es nie die erste 'if' Anweisung erreicht? Ist es auch '.profile' oder' .bashrc', die nicht ausgeführt werden? Dein Titel sagt einen, aber der Körper sagt den anderen. –
Wie haben Sie die Datei .profile aufgerufen? Mit 'source ~/.profile'? Auch wo hast du die $ BASH_VERSION –
Entschuldigung Jungs. Ich habe meine Frage aktualisiert. –