Soweit ich weiß, können sich die interaktiven Shells anmelden oder nicht anmelden, und die Startdateien für sie sind unterschiedlich.
- Wenn interactive + Login - Shell →
/etc/profile
dann die erste lesbar von~/.bash_profile
,~/.bash_login
und~/.profile
- Wenn interaktiv + Nicht-Login-Shell →
/etc/bash.bashrc
dann~/.bashrc
Ich möchte jedes Mal, wenn ich eine interaktive Shell verwende, einige Variablen festlegen, unabhängig davon, ob es sich um eine Anmeldeshell handelt oder nicht.
Antworten:
Nein, gibt es nicht. Ja, dies ist ein Konstruktionsfehler.
Verwenden Sie den folgenden Inhalt in
~/.bash_profile
:Beachten Sie, dass eine noch bash weirder quirk aufweist: wenn es eine nicht-interaktive Login - Shell und der Eltern - Prozess ist
rshd
odersshd
schlagQuellen~/.bashrc
(aber nicht~/.bash_profile
oder~/.profile
). Vielleicht möchten Sie dies ganz oben auf Ihre Liste setzen.bashrc
:Siehe auch Unterschied zwischen .bashrc und .bash_profile und Unterschied zwischen Login-Shell und Nicht-Login-Shell?
quelle
.bashrc
in einer nicht interaktiven Einstellung tatsächlich als unerwartet gelten kann) oder eine Überprüfung eines sicherheitsrelevanten Kontexts.