Что делает двоеточие в 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 во-первых.