Se eu digitar command
no meu terminal, não recebo "comando não encontrado" e o código de saída é 0. Presumo que isso significa que command
realmente faz algo no bash.
Além disso, command -h
retorna:
bash: command: -h: invalid option
command: usage: command [-pVv] command [arg ...]
Para que isso é usado?
Responder1
De help command
:
$ help command
command: command [-pVv] command [arg ...]
Execute a simple command or display information about commands.
Runs COMMAND with ARGS suppressing shell function lookup, or display
information about the specified COMMANDs. Can be used to invoke commands
on disk when a function with the same name exists.
Options:
-p use a default value for PATH that is guaranteed to find all of
the standard utilities
-v print a description of COMMAND similar to the `type' builtin
-V print a more verbose description of each COMMAND
Exit Status:
Returns exit status of COMMAND, or failure if COMMAND is not found.
Como observação mais geral, em vez de usar apenas -h
quando não sabe o que um comando faz, você deve tentar:
type -a command
O que, neste caso, teria dito que é um shell embutido.
help command
é bom para componentes internos do shell. Para outros comandos (etambémpara shell embutidos, na verdade), tente
man somecommand
Além disso, -h
não énecessariamentea opção "ajuda". Se você não sabe o que um comando faz, essa pode não ser uma suposição segura. Mais seguro é --help
.
somecommand --help
(Comandos comuns onde -h
é uma opção válida, mas nãonãosignifica "ajuda" são ls
, free
, df
, du
. Tudo isso é apenas informativo, mas a suposição de que -h
sempre significará apenas “ajuda” é uma suposição perigosa.)
Responder2
command
como quase tudo o mais, o Unix/Linux está documentado nas páginas de manual. A digitação man command
fornece o manual bash
que possui uma subseção dedicada ao comando integrado command
:
comando [-pVv] comando [arg ...]
Execute o comando com argumentos suprimindo a pesquisa normal da função shell. Somente comandos internos ou comandos encontrados no PATH são executados. Se a opção -p for fornecida, a busca pelo comando será executada usando um valor padrão para PATH que garante a localização de todos os utilitários padrão. Se a opção -V ou -v for fornecida, uma descrição do comando será impressa. A opção -v faz com que uma única palavra indicando o comando ou nome de arquivo usado para invocar o comando seja exibida; a opção -V produz uma descrição mais detalhada. Se a opção -V ou -v for fornecida, o status de saída será 0 se o comando for encontrado e 1 se não. Se nenhuma opção for fornecida e ocorrer um erro ou o comando não puder ser encontrado, o status de saída será 127. Caso contrário, o status de saída do comando integrado será o status de saída do comando.