Однако если я запускаю bash в чистой среде, я ожидаю, что PATH будет пустым:
odin ~ 210$ env -i bash --norc --noprofile
bash-4.4$ echo $PATH
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:.
bash-4.4$ uname -a
Linux odin 4.10.0-42-generic #46-Ubuntu SMP Mon Dec 4 14:38:01 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
bash-4.4$
Путь не пустой.
Я просматривал документацию пару раз, но, возможно, я что-то упустил.
Мой вопрос: где это задокументировано?
Спасибо.
-Э
решение1
Я нашел пару подсказок в man bash
.
(1) В документации переменной PATH:-
PATH Путь поиска команд. Это разделенный двоеточиями список каталогов, в которых оболочка ищет команды (см. ВЫПОЛНЕНИЕ КОМАНДЫ ниже). Имя каталога нулевой длины (null) в значении PATH указывает на текущий каталог. Пустое имя каталога может отображаться как два смежных двоеточия или как начальное или конечное двоеточие. Путь по умолчанию зависит от системы и задается администратором, который устанавливает bash. Распространенное значение - ``/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin''.
(2) В документации command
:
command [-pVv] command [arg ...] Запустить команду с аргументами, подавляя обычный поиск функций оболочки. Выполняются только встроенные команды или команды, найденные в PATH. Если указана опция -p, поиск команды выполняется с использованием значения PATH по умолчанию, которое гарантированно находит все стандартные утилиты. ...
На Ubuntu 18.04.2 я получаю ту же PATH
переменную. Я заметил две вещи:-
- Сюда
PATH
входит.
, но это, как правило, нецелесообразно. - В новом
bash
экземпляреdeclare -p PATH
отображается , которыйPATH
не экспортируется, как в обычной конфигурации, поэтомуenv
не отображаетсяPATH
в списке сред.