Я могу думать о двух разных способах решения этой проблемы. Первый - запустить ваш .bashrc со строки, которая явно устанавливает ваш базовый PATH. Таким образом, каждый раз, когда вы его создаете, он сбрасывается в базовый перед добавлением дополнительных каталогов.
Например, добавьте:
# 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
Кроме того, вы можете проверить элемент, прежде чем добавить его в путь. Чтобы сделать это, вы должны использовать что-то вроде:
if ! [[ $PATH =~ '~/perl5/bin' ]]
then
PATH="~/perl5/bin:$PATH"
fi
Последнее, однако, имеет тенденцию становиться немного повторяющимся, если вы добавляете много записей, поэтому я склонен придерживаться первого. Если вы хотите использовать это и планируете добавить много записей, было бы разумно написать функцию bash для ее обработки.
Примечание: второй вариант может работать только так, как написано в современных версиях bash. Поддержка регулярных выражений не является функцией Bourne Shell (/ bin / sh) и может отсутствовать в других оболочках. Кроме того, использование кавычек может не потребоваться или может даже вызвать проблемы в некоторых новейших версиях bash.
/etc/profile
Debian Lenny, поэтому я включаю его в свой.bashrc
.