command
to wbudowane bash, jak widzimy:
seth@host:~$ type command
command is a shell builtin
Więc wiemy, że command
jest dostarczany przez naszą powłokę, bash. Zagłębiając się man bash
, możemy zobaczyć, jakie jest jego zastosowanie:
(z man bash
):
command [-pVv] command [arg ...]
Run command with args suppressing the normal shell function
lookup. Only builtin commands or commands found in the PATH are
executed. If the -p option is given, the search for command is
performed using a default value for PATH that is guaranteed to
find all of the standard utilities. If either the -V or -v
option is supplied, a description of command is printed. The -v
option causes a single word indicating the command or file name
used to invoke command to be displayed; the -V option produces a
more verbose description. If the -V or -v option is supplied,
the exit status is 0 if command was found, and 1 if not. If
neither option is supplied and an error occurred or command
cannot be found, the exit status is 127. Otherwise, the exit
status of the command builtin is the exit status of command.
Zasadniczo użyłbyś command
do ominięcia „normalnego wyszukiwania funkcji”. Załóżmy na przykład, że masz funkcję w .bashrc
:
function say_hello() {
echo 'Hello!'
}
Zwykle po uruchomieniu say_hello
w terminalu bash znalazłby funkcję o nazwie say_hello
w niej, .bashrc
zanim znalazłaby, powiedzmy, aplikację o nazwie say_hello
. Za pomocą:
command say_hello
sprawia, że bash omija normalne wyszukiwanie funkcji i przechodzi bezpośrednio do wbudowanych lub twoich $PATH
. Pamiętaj, że to wyszukiwanie funkcji obejmuje również aliasy. Użycie command
spowoduje pominięcie zarówno funkcji, jak i aliasów.
Jeśli -p
opcja jest podana, bash omija Twój zwyczaj $PATH
i używa własnych ustawień domyślnych.
-v
Lub -V
flagi bash wypisuje opis (skrót -v
, długo -V
) polecenia.
Uwaga: Jak zauważył souravc w komentarzach, łatwiejszą metodę wyszukiwania informacji o wbudowanych powłokach można znaleźć tutaj: Jak sprawić, by `man` działał dla wbudowanych poleceń i słów kluczowych powłoki?