O que é 'comando' no bash?

O que é 'comando' no bash?

Se eu digitar commandno meu terminal, não recebo "comando não encontrado" e o código de saída é 0. Presumo que isso significa que commandrealmente faz algo no bash.

Além disso, command -hretorna:

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 -hquando 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, -hnã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 -hsempre significará apenas “ajuda” é uma suposição perigosa.)

Responder2

commandcomo quase tudo o mais, o Unix/Linux está documentado nas páginas de manual. A digitação man commandfornece o manual bashque 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.

informação relacionada