Что делает двоеточие в PATH
Я новичок в bash, и я видел, как люди часто добавляют :
после каталога при изменении PATH
. После некоторого поиска я не нашел ответа на этот вопрос, или я считаю, что не искал его правильно. Поэтому я надеюсь, что смогу получить ответ здесь.
пример:
/Users/chengluli/anaconda/bin:/Users/chengluli/.rbenv/shims:/
что значит :
после bin
и shims
делать?
4 ответов
:
- это разделитель. The PATH
переменная сама по себе является списком папок, которые "прошли" при выполнении команды.
в этом случае папки на вашем PATH
являются:
/Users/chengluli/anaconda/bin
/Users/chengluli/.rbenv/shims
/
как говорили другие,:
является разделителем (Windows использует двоеточие ;
). Но вы, вероятно, думаете о конце двоеточия :
на конец на PATH
переменной. Например:
/Users/chengluli/anaconda/bin:/Users/chengluli/.rbenv/shims:
со страниц bash man:
имя каталога нулевой длины (null) в значении PATH указывает текущий каталог. Имя нулевого каталога может отображаться как два соседних двоеточия или как начальное или конечное двоеточие.
размещение текущего каталога в пути обычно считается риском для безопасности и плохой идеей. Это особенно опасно при использовании пользователем root.
кстати, bash использует $PATH только при первом вызове внешней программы, после чего он использует хэш-таблицу. См.man bash
и hash
команда
если вы запустите ls -l 123
в командной строке вы говорите bash найти команду под названием ls
в файловой системе. Однако,ls
- это просто имя файла, bash нужен абсолютный путь ls
в файловой системе. Поэтому bash ищет файл под названием ls
в списке каталогов по умолчанию, один за другим по порядку.
список каталогов по умолчанию хранится в PATH
переменной, разделенных :
.
- Я цитата из вывода man bash
команда
путь
Путь поиска команд. Это разделенный двоеточиями список каталогов, в которых оболочка ищет команды (см. команды ниже). Нулевой длины (пустой) каталог имя в значении PATH указывает текущий каталог. Имя нулевого каталога может отображаться как два соседних двоеточия или как начальное или конечное двоеточие. Путь по умолчанию зависит от системы, и установить администратором, который устанавливает bash. Общим значением является "/usr/gnu/bin:/usr/local/bin:/usr/ucb:/bin:/usr / bin".
Если у вас есть вопросы о скрипте bash или переменной среды, пожалуйста, используйте man bash
во-первых.