È possibile utilizzare la command
shell integrata per ignorare il normale processo di ricerca ed eseguire il comando dato come comando esterno indipendentemente da qualsiasi altra possibilità (built-in della shell, alias, ecc.). Questo è spesso fatto negli script che devono essere portatili tra i sistemi, sebbene probabilmente più comunemente usando la scorciatoia \
(come in \rm
piuttosto che command rm
o rm
, in quanto in particolare quest'ultimo può essere aliasato a qualcosa di non noto come 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...]
$
Questo può essere usato con un alias, in questo modo:
$ alias time='command time'
$ time
Usage: time [-apvV] [-f format] [-o file] [--append] [--verbose]
[--portability] [--format=format] [--output=file] [--version]
[--quiet] [--help] command [arg...]
$
Il vantaggio di questo, ad esempio, alias time=/usr/bin/time
è che non si sta specificando il percorso completo del time
binario, ma si ricorre al normale meccanismo di ricerca del percorso.
Il alias
comando stesso può andare ad esempio in ~ / .bashrc o /etc/bash.bashrc (quest'ultimo è globale per tutti gli utenti del sistema).
Per il caso opposto (forzando l'uso della shell integrata nel caso in cui sia definito un alias), useresti qualcosa del genere builtin time
, che ignora nuovamente il normale processo di ricerca ed esegue la shell incorporata. La pagina man di bash menziona che questo è spesso usato per fornire cd
funzionalità personalizzate con una funzione chiamata cd
, che a sua volta usa il builtin cd
per fare la cosa reale.
type -a <cmd>
.