В некоторых окнах моего терминала у меня есть повторяющиеся записи в PATH
переменная; что-то вроде этого:
PATH=/a/b:/c/d:/a/b:/c/d:/e/f:/a/b
Я полагаю, что в некоторых моих сценариях виноваты такие строки:
PATH=/a/b:$PATH
После поиска этого и того и этого снова PATH
становится очень долго Это вопрос:
Есть ли bash
команда для очистки PATH
и подобные переменные env? Это должно быть bash
сценарий, потому что нельзя выполнить утилиту и ожидать, что она изменит среду вызывающей оболочки.
В приведенном выше примере очищен PATH
должен выглядеть так:
PATH=/a/b:/c/d:/e/f
Ответы:
Лучше не создавать дубликаты, чем пытаться удалить их потом. Этого легко избежать с помощью техники, которую я использую в своем
.bashrc
для добавления моего личногоbin/
каталог:Я сделал это в то время, когда я делал обновления для
.bashrc
и я хотел перезапустить его без перезапуска оболочки.Если вы хотите добавить каталог в конец
$PATH
вам нужно использовать ведущий двоеточие:Вы можете использовать расширение параметра, чтобы пройти через
PATH
и удалите дубликаты, но это будет немного сложно, и вам нужно будет решить, какую позицию следует сохранить. Что-то вроде:После того, как я написал это на лету и проверил, я должен был удалить большинство ошибок, и это должно быть адекватным руководством к тому, что вам нужно будет сделать. Это оставляет прошлой появление любых дубликатов, где они будут, если вы использовали мой сценарий, чтобы избежать дубликатов в первую очередь. В сценарии его, конечно, нужно вызывать с
.
/source
команда.источник
Microsoft Technet решает эту проблему с скрипт powershell , Этот скрипт идентифицирует и удаляет повторяющиеся записи из
PATH
переменная.Это говорит:
источник