Sie können die command
eingebaute Shell verwenden, um den normalen Suchvorgang zu umgehen und den angegebenen Befehl als externen Befehl auszuführen, unabhängig von anderen Möglichkeiten (eingebaute Shell, Aliase usw.). Dies geschieht häufig in Skripten, die systemübergreifend portierbar sein müssen, obwohl wahrscheinlich häufiger die Kurzform verwendet wird \
(wie in \rm
und nicht command rm
oder rm
, da insbesondere letztere auf etwas ausgerichtet sein können, das nicht bekannt ist wie 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...]
$
Dies kann mit einem Alias wie folgt verwendet werden:
$ alias time='command time'
$ time
Usage: time [-apvV] [-f format] [-o file] [--append] [--verbose]
[--portability] [--format=format] [--output=file] [--version]
[--quiet] [--help] command [arg...]
$
Der Vorteil gegenüber z. B. alias time=/usr/bin/time
ist, dass Sie nicht den vollständigen Pfad zur time
Binärdatei angeben, sondern stattdessen auf den üblichen Pfadsuchmechanismus zurückgreifen.
Der alias
Befehl selbst kann zB in ~ / .bashrc oder /etc/bash.bashrc abgelegt werden (letzteres ist global für alle Benutzer im System).
Für den umgekehrten Fall (Erzwingen der Verwendung der integrierten Shell, falls ein Alias definiert ist) würden Sie so etwas wie verwenden builtin time
, das wiederum den üblichen Suchprozess außer Kraft setzt und die integrierte benannte Shell ausführt. In der Bash-Manpage wird erwähnt, dass dies häufig verwendet wird, um benutzerdefinierte cd
Funktionen mit einer Funktion namens bereitzustellen cd
, die wiederum die eingebaute Funktion verwendet cd
, um die eigentliche Aufgabe zu erledigen.
type -a <cmd>
.