Ich kann mir zwei verschiedene Möglichkeiten vorstellen, wie Sie dies lösen können. Die erste besteht darin, Ihre .bashrc-Datei mit einer Zeile zu starten, in der Ihr Basis-PATH explizit festgelegt wird. Auf diese Weise wird die Basis jedes Mal, wenn Sie sie als Quelle verwenden, auf die Basis zurückgesetzt, bevor zusätzliche Verzeichnisse hinzugefügt werden.
Fügen Sie zum Beispiel hinzu:
# Reset the PATH to prevent duplication and to make sure that we include
# everything we want.
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Alternativ können Sie nach einem Element suchen, bevor Sie es dem Pfad hinzufügen. Dazu verwenden Sie Folgendes:
if ! [[ $PATH =~ '~/perl5/bin' ]]
then
PATH="~/perl5/bin:$PATH"
fi
Letzteres wiederholt sich ein wenig, wenn Sie jedoch viele Einträge hinzufügen, sodass ich mich eher an Ersteres halte. Wenn Sie dies verwenden möchten und viele Einträge hinzufügen möchten, ist es ratsam, eine Bash-Funktion zu schreiben, um damit umzugehen.
Hinweis: Die zweite Option funktioniert möglicherweise nur wie in modernen Bash-Versionen beschrieben. Die Unterstützung für reguläre Ausdrücke ist keine Bourne-Shell-Funktion (/ bin / sh) und möglicherweise nicht in anderen Shells vorhanden. Außerdem ist die Verwendung von Anführungszeichen möglicherweise nicht erforderlich oder kann bei einigen neuesten Versionen von Bash sogar zu Problemen führen.
/etc/profile
Debian Lenny, also nehme ich es in meine auf.bashrc
.