Ich verwende dies in meinem .bashrc (und auch in meinem .zshrc, da ich normalerweise zsh verwende, sofern verfügbar, anstelle von bash). Zugegeben, es erfordert das manuelle Hinzufügen von Verzeichnissen. Ein Vorteil ist jedoch, dass ich beim Aktualisieren weiterhin auf neue Server kopieren kann und mir keine Sorgen machen muss, dass der Pfad auf einem neuen Server mit Verzeichnissen erstellt wird, die dort nicht vorhanden sind.
##
## PATH
##
## Anstatt nur unseren PATH mit Verzeichnissen zu überhäufen, die das können
## ist für diesen Server nicht geeignet, versuchen Sie intelligent zu sein, was wir hinzufügen
##
PATH = / usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin
[-d / cs / sbin] && PATH = / cs / sbin: $ PATH
[-d / cs / bin] && PATH = / cs / bin: $ PATH
[-d / usr / ucb] && PATH = $ PATH: / usr / ucb
[-d / usr / ccs / bin] && PATH = $ PATH: / usr / ccs / bin
[-d / usr / local / ssl / bin] && PATH = $ PATH: / usr / local / ssl / bin
[-d / usr / krb5 / bin] && PATH = $ PATH: / usr / krb5 / bin
[-d / usr / krb5 / sbin] && PATH = $ PATH: / usr / krb5 / sbin
[-d / usr / kerberos / sbin] && PATH = $ PATH: / usr / kerberos / sbin
[-d / usr / kerberos / bin] && PATH = $ PATH: / usr / kerberos / bin
[-d /cs/local/jdk1.5.0/bin] && PATH = $ PATH: /cs/local/jdk1.5.0/bin
[-d /usr/java/jre1.5.0_02/bin] && PATH = $ PATH: /usr/java/jre1.5.0_02/man
[-d /usr/java1.2/bin] && PATH = $ PATH: /usr/java1.2/bin
[-d /cs/local/perl5.8.0/bin] && PATH = $ PATH: /cs/local/perl5.8.0/bin
[-d / usr / perl5 / bin] && PATH = $ PATH: / usr / perl5 / bin
[-d / usr / X11R6 / bin] && PATH = $ PATH: / usr / X11R6 / bin
[-d / etc / X11] && PATH = $ PATH: / etc / X11
[-d / opt / sfw / bin] && PATH = $ PATH: / opt / sfw / bin
[-d / usr / local / apache / bin] && PATH = $ PATH: / usr / local / apache / bin
[-d / usr / apache / bin] && PATH = $ PATH: / usr / apache / bin
[-d / cs / admin / bin] && PATH = $ PATH: / cs / admin / bin
[-d / usr / openwin / bin] && PATH = $ PATH: / usr / openwin / bin
[-d / usr / xpg4 / bin] && PATH = $ PATH: / usr / xpg4 / bin
[-d / usr / dt / bin] && PATH = $ PATH: / usr / dt / bin
Ich mache dasselbe für meinen MANPATH:
##
## MANPATH
##
## Anstatt nur unseren MANPATH mit Verzeichnissen zu überhäufen, die das können
## ist für diesen Server nicht geeignet, versuchen Sie intelligent zu sein, was wir hinzufügen
##
MANPATH = / usr / local / man
[-d / usr / share / man] && MANPATH = $ MANPATH: / usr / share / man
[-d / usr / local / share / man] && MANPATH = $ MANPATH: / usr / local / share / man
[-d / usr / man] && MANPATH = $ MANPATH: / usr / man
[-d / cs / man] && MANPATH = $ MANPATH: / cs / man
[-d / usr / krb5 / man] && MANPATH = $ MANPATH: / usr / krb5 / man
[-d / usr / kerberos / man] && MANPATH = $ MANPATH: / usr / kerberos / man
[-d / usr / local / ssl / man] && MANPATH = $ MANPATH: / usr / local / ssl / man
[-d /cs/local/jdk1.5.0/man] && MANPATH = $ MANPATH: /cs/local/jdk1.5.0/man
[-d /usr/java/jre1.5.0_02/man] && MANPATH = $ MANPATH: /usr/java/jre1.5.0_02/man
[-d /usr/java1.2/man] && MANPATH = $ MANPATH: /usr/java1.2/man
[-d / usr / X11R6 / man] && MANPATH = $ MANPATH: / usr / X11R6 / man
[-d / usr / local / apache / man] && MANPATH = $ MANPATH: / usr / local / apache / man
[-d / usr / local / mysql / man] && MANPATH = $ MANPATH: / usr / local / mysql / man
[-d /cs/local/perl5.8.0/man] && MANPATH = $ MANPATH: /cs/local/perl5.8.0/man
[-d / usr / perl5 / man] && MANPATH = $ MANPATH: / usr / perl5 / man
[-d / usr / local / perl / man] && MANPATH = $ MANPATH: / usr / local / perl / man
[-d /usr/local/perl5.8.0/man] && MANPATH = $ MANPATH: /usr/local/perl5.8.0/man
[-d / usr / openwin / man] && MANPATH = $ MANPATH: / usr / openwin / man
Dieser Ansatz verfügt nicht nur über eine einzelne Datei, die ich auf Systeme in unterschiedlichen Umgebungen kopieren kann, ohne befürchten zu müssen, dass nicht vorhandene Verzeichnisse zum PATH hinzugefügt werden, sondern bietet auch den Vorteil, dass ich die Reihenfolge festlegen kann, in der Verzeichnisse im PATH angezeigt werden sollen. Da die erste Zeile jeder Definition die PATH-Variable vollständig neu definiert, kann ich meine .bashrc-Datei aktualisieren und nach der Bearbeitung als Quelle verwenden, damit meine Shell aktualisiert wird, ohne doppelte Einträge hinzuzufügen (was ich vor langer Zeit erlebt habe, als ich einfach mit " $ PATH = $ PATH: / new / dir ". Dadurch wird sichergestellt, dass ich eine saubere Kopie in der von mir gewünschten Reihenfolge erhalte.
PATH=foo:$PATH
scheint falsch, weil es jedes Mal das Wachstum beibehältsource ~/.bashrc
und sogarexec bash
nicht anders kann, als es$PATH
istexport
.