Wiem, co to jest wbudowane polecenie, ale co builtin
samo robi? Wykonanie which ls
pokazuje mi /bin/ls
, ale wykonanie which builtin
nic nie zwraca.
man builtin
po prostu daje mi listę wbudowanych poleceń, z których jednym jest builtin
. Reszta strony podręcznika wyjaśnia, co to jest wbudowane, ale nie to, co builtin
jest.
builtin --help
mówi mi builtin: usage: builtin [shell-builtin [arg ...]]
ale wciąż nie to, co robi.
Czy to część bash w sposób, w jaki inne wbudowane polecenia nie są?
help builtin
.which builtin
nie zwraca wyników, ponieważwhich
zgłasza lokalizację poleceń zewnętrznych . Jeśli poprosisz o powłokętype builtin
, nie będzie to zaskakującebuiltin is a shell builtin
. Znajdziesz to samo zalias
,set
itp.builtin help builtin
Odpowiedzi:
The
builtin
marki dowodzenia pewno uruchomić powłokę wbudowany w wersji polecenia zamiast prowadzenia innego polecenia o tej samej nazwie.Załóżmy na przykład, że zdefiniowałeś funkcję powłoki o nazwie,
cd
która wypisuje dodatkowy status za każdym razem, gdy zmieniasz katalogi. Ale popsułeś to i teraz nie możesz poprawnie zmieniać katalogów. Teraz możesz pisać,builtin cd ~
aby pomyślnie wrócić do katalogu domowego bez uruchamiania uszkodzonej funkcji powłoki.Nawiasem mówiąc, moja kopia strony podręcznika użytkownika bash ma sekcję o nazwie „SHELL BUILTIN COMMANDS” i definiuje znaczenie
builtin
polecenia w tej sekcji (transkrypcji poniżej).źródło
builtin
polecenie jest wbudowane w bash?builtin
też:function builtin { echo "Hi from builtin :-)"; }
. Wtedybuiltin
już nie działa.type builtin
powie ci, czy to prawdabuiltin
. Chybatype
że został zastąpiony niewbudowanymtype
...