Я знаю, что такое встроенная команда, но что она делает builtin
сама? Выполнение which ls
показывает мне /bin/ls
, но выполнение which builtin
ничего не возвращает.
man builtin
просто дает мне список встроенных команд, одной из которых является builtin
. Остальная часть справочной страницы объясняет, что такое встроенное, но не то, что builtin
есть.
builtin --help
говорит мне, builtin: usage: builtin [shell-builtin [arg ...]]
но все еще не то, что он делает.
Является ли это частью bash в отличие от других встроенных команд?
help builtin
.which builtin
не возвращает результатов, так какwhich
сообщает о расположении внешних команд . Если вы спросите раковинуtype builtin
, она скажет вам, что неудивительно, чтоbuiltin is a shell builtin
. Вы найдете то же самое сalias
,set
и т. Д.builtin help builtin
Ответы:
Команда
builtin
гарантирует, что вы запускаете встроенную в оболочку версию команды, а не запускаете другую команду с тем же именем.Например, допустим, вы определили функцию оболочки с именем
cd
для вывода дополнительного статуса каждый раз, когда вы меняете каталоги. Но вы все испортили, и теперь вы не можете корректно менять каталоги. Так что теперь вы можете напечататьbuiltin cd ~
cd обратно в ваш домашний каталог, не запуская сломанную функцию оболочки.И, между прочим, моя копия справочной страницы bash имеет раздел под названием «Команды сборки оболочки», и он определяет значение
builtin
команды в этом разделе (расшифровано ниже).источник
builtin
команда - настоящая встроенная команда bash?builtin
, тоже:function builtin { echo "Hi from builtin :-)"; }
. Тогдаbuiltin
больше не работает.type builtin
скажу вам, правда ли этоbuiltin
. Если только онtype
не был заменен не встроеннымtype
...