Рейтинг:4

Дублирующая системная переменная PATH (snap/bin:/snap/bin)

флаг jp

Когда я бегу эхо $PATH дублированный вывод привязка/бен:/привязка/бен появляется в конце и кажется необычным.

 /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/ мусорное ведро

Является ли это дублирование нежелательным? Если да, то как это можно изменить?

Рейтинг:5
флаг gr

Вероятно, в вашем ~/.bashrc или в вашем ~/.профиль есть команда, которая добавляет / привязка / бен к $ПУТЬ без предварительной проверки, находится ли он все еще в $ПУТЬ.

Учтите, что дублированные записи в $ПУТЬ переменная не имеет никакого влияния, когда вы запускаете команду, которая находится в вашем $ПУТЬ. С другой стороны, замедление может присутствовать, когда вы запускаете команду не в $ПУТЬ (поскольку поиск команд выполняется бесполезно два или более раз при наличии повторяющихся записей), хотя я думаю, что это замедление трудно воспринять. Повторяющиеся записи также немного раздражают, когда вы хотите визуально проверить $ПУТЬ переменная.

Если вы хотите избежать дублирования записей в вашем $ПУТЬ, вы можете добавить эту команду в свой ~/.профиль файл (то есть лучшее место для переменных среды):

# удалить повторяющиеся пути в переменной PATH
PATH="$(printf "%s" "$PATH" | awk -v RS=':' '!a[$1]++ {if (NR > 1) printf RS; printf $1}')"

Эта команда использует аук идентифицировать каждый элемент в $ПУТЬ переменная (они разделены : символ) и восстановить $ПУТЬ переменная, избегающая повторного добавления дубликатов папок. Он также сохраняет исходный вид папок внутри $ПУТЬ переменная.

Вы можете открыть ~/.профиль с предпочитаемым вами текстовым редактором. Если вы открываете его терминалом, вам не нужно судо потому что он принадлежит вашему пользователю.

XJMZX avatar
флаг jp
Спасибо за тонну. Это делает некоторые вещи намного яснее в моей голове о том, что происходит с переменными среды, bash.rc и .profile - если бы я мог спросить, если .profile - лучшее место, то почему другие команды указывают ~/.bashrc ? Например, echo "export PATH=$PATH:~/go/bin:/usr/local/go/bin" >> ~/.bashrc
Lorenz Keel avatar
флаг gr
Проверьте https://superuser.com/questions/183845/what-config-files-should-be-used-for-setting-bash-environment-variables/183956#183956 и https://superuser.com/a/183980.
Lorenz Keel avatar
флаг gr
Если вы используете zsh, возможно, эта ссылка может дать вам дополнительную информацию: https://superuser.com/a/187673.
XJMZX avatar
флаг jp
Спасибо. Это должно помочь.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.