Você pode usar o shell command
incorporado para ignorar o processo de pesquisa normal e executar o comando fornecido como um comando externo, independentemente de quaisquer outras possibilidades (internos do shell, aliases etc.). Isso geralmente é feito em scripts que precisam ser portáveis entre sistemas, embora provavelmente seja mais comum usar a abreviação \
(como em \rm
em vez de command rm
ou rm
, pois o último pode ser aliado a algo que não é conhecido como rm -i
).
$ time
real 0m0.000s
user 0m0.000s
sys 0m0.000s
$ command time
Usage: time [-apvV] [-f format] [-o file] [--append] [--verbose]
[--portability] [--format=format] [--output=file] [--version]
[--quiet] [--help] command [arg...]
$
Isso pode ser usado com um alias, assim:
$ alias time='command time'
$ time
Usage: time [-apvV] [-f format] [-o file] [--append] [--verbose]
[--portability] [--format=format] [--output=file] [--version]
[--quiet] [--help] command [arg...]
$
A vantagem disso sobre, por exemplo, alias time=/usr/bin/time
é que você não está especificando o caminho completo para o binário time
, mas retornando ao mecanismo de pesquisa de caminho usual.
O comando alias
propriamente dito pode entrar em, ~ / .bashrc ou /etc/bash.bashrc (o último é global para todos os usuários no sistema).
Para o caso oposto (forçar o uso do shell embutido no caso de haver um alias definido), você usaria algo como builtin time
, que novamente substitui o processo de pesquisa usual e é executado o shell nomeado incorporado. A página man bash menciona que isso é frequentemente usado para fornecer funcionalidade cd
personalizada com uma função chamada cd
, que por sua vez usa o cd
embutido para fazer a coisa real.