35

Я знаю, что такое встроенная команда, но что делает сама builtin ? Выполнение which ls показывает мне /bin/ls , но выполнение which builtin ничего не возвращает.

man builtin просто дает мне список встроенных команд, одна из которых builtin . Остальная часть справочной страницы объясняет, что такое встроенная функция, но не то, что является builtin .

builtin --help говорит мне builtin: usage: builtin [shell-builtin [arg ...]] но все еще не то, что он делает.

Является ли это частью bash в отличие от других встроенных команд?

1 ответ1

51

builtin команда гарантирует, что вы запускаете встроенную в оболочку версию команды, а не запускаете другую команду с тем же именем.

Например, предположим, что вы определили функцию оболочки с именем cd для печати некоторого дополнительного состояния при каждом изменении каталогов. Но вы все испортили и теперь не можете корректно менять каталоги. Так что теперь вы можете набрать builtin cd ~ чтобы успешно вернуться обратно в ваш домашний каталог, не запуская сломанную функцию оболочки.

И, кстати, моя копия справочной страницы bash имеет раздел под названием "Команды сборки оболочки", и он определяет значение builtin команды в этом разделе (расшифровано ниже).

builtin shell-builtin [arguments]

    Execute  the  specified  shell builtin, passing it arguments, and
    return its exit status.  This is useful when defining a function
    whose name  is the  same as a shell builtin, retaining the
    functionality of the builtin within the function.  The cd builtin is
    commonly  redefined  this  way.

    The  return status is false if shell-builtin is not a shell builtin
    command.

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