An welchen Stellen können Shell-Variablen gesetzt werden?

2 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

eigentlich in all den Dateien, die beim Login oder Start einer Anwendung gelesen und ausgeführt werden.

Hier nur einige:

/etc/profile ;  /etc/profile.local
/etc/profile.d/* ; das sollte von der benutzten Shell abhängen
/etc/bash.bashrc

~/.bashrc ; direkt in dieser Datei oder in dort ausgeführten anderen , z.B.  ~/.alias

Nicht alle Dateien sind sinnvoll, man muss das auch pflegen können.

Woher ich das weiß:Berufserfahrung – openSuSE seit 1995

Die Dokumentation behandelt das Thema ausführlich, auch welche Dateien unter welchen Umständen gesourced werden.

Aus der manpage:

FILES
       /bin/bash
              The bash executable
       /etc/profile
              The systemwide initialization file, executed for login shells
       ~/.bash_profile
              The personal initialization file, executed for login shells
       ~/.bashrc
              The individual per-interactive-shell startup file
       ~/.bash_logout
              The individual login shell cleanup file, executed when a login shell exits
       ~/.inputrc
              Individual readline initialization file

Je nach Distribution ist das aber deutlich 'komplexer' weil das System-Profile weitere Dateien sourced o.ä. .

Du mußt Dich also im Zweifelsfall durch deutlich mehr wühlen und ggf. sogar die Prozesshierachie rückwärts durchlaufen, wenn profile nur den Pfad ergänzt.