3

Я пытаюсь задать этот вопрос, но для многих команд в OS-X и, возможно, в других системах POSIX мне сложно найти необходимую документацию по встроенным командам.

Например, если я хочу узнать, что делает опция -P команды cd , я бы ожидал, что man cd скажет мне, но, увы, это приведет меня к страшной странице "Общие команды BSD" .

Многие из этих команд (все?) не поддерживаю опции --help , поэтому лучшее, что я смог сделать, это вызвать краткое сообщение об использовании, указав недопустимую опцию. Например:

~ $ cd --tell-me-something-I-didnt-know-damn-you
-bash: cd: --: invalid option
cd: usage: cd [-L|-P] [dir]

Я нашел простой командный раздел стандарта POSIX, и это кажется полезным, но у меня такое ощущение, что мне не хватает чего-то фундаментального. Это не должно быть так сложно.

Как правильно получить подробную информацию об использовании встроенных команд?

2 ответа2

5

Простой способ получить справку по встроенным командам без просмотра справочной страницы оболочки - это help:

$ help cd
cd: cd [-L|[-P [-e]]] [dir]
Change the shell working directory.

Change the current directory to DIR.  The default DIR is the value of the
HOME shell variable.

The variable CDPATH defines the search path for the directory containing
DIR.  Alternative directory names in CDPATH are separated by a colon (:).
A null directory name is the same as the current directory.  If DIR begins
with a slash (/), then CDPATH is not used.

If the directory is not found, and the shell option `cdable_vars' is set,
the word is assumed to be  a variable name.  If that variable has a value,
its value is used for DIR.

Options:
    -L  force symbolic links to be followed
    -P  use the physical directory structure without following symbolic
    links
    -e  if the -P option is supplied, and the current working directory
    cannot be determined successfully, exit with a non-zero status

The default is to follow symbolic links, as if `-L' were specified.

Exit Status:
Returns 0 if the directory is changed, and if $PWD is set successfully when
-P is used; non-zero otherwise.
4

cd - это встроенная оболочка, как вы можете видеть, набрав type CMD:

$ type cd
cd is a shell builtin

Документация по встроенным функциям оболочки находится в справочных страницах оболочки sh(1), bash(1) и bash-builtins(1) под заголовками Встроенные команды, Команды встроенной оболочки или Команды встроенной оболочки ; например:

CD [ -L | [ -P [ -e ]]] [ dir ]

    Измените текущий каталог на dir.  Переменный HOME является режем по умолчанию.  Переменная CDPATH определяет путь поиска для каталога, содержащего dir.  Альтернативные имена каталогов в CDPATH разделены двоеточием :Нулевое имя каталога в CDPATH совпадает с текущим каталогом, т . Е. « . ».  Если dir начинается с косой черты (/), то CDPATH не используется.  Опция -P говорит об использовании физической структуры каталогов вместо символьных ссылок (см. Также опцию -P для встроенной команды set); опция -L заставляет следовать символическим ссылкам.  Если опция -e указана с параметром -P и текущий рабочий каталог не может быть успешно определен после успешного изменения каталога, cd вернет неудачный статус.  Аргумент - эквивалентен $OLDPWD.  Если используется непустое имя каталога из CDPATH, или если - первый аргумент, и изменение каталога прошло успешно, абсолютный путь нового рабочего каталога записывается в стандартный вывод.  Возвращаемое значение равно true, если каталог был успешно изменен; ложь в противном случае.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .