Bash reservierte Wörter gegen integrierte Befehle und Formatieren der Ausgabe des Zeitbefehls

8

Was ist der Unterschied zwischen reservierten Bash-Wörtern und integrierten Befehlen?

Kann ich die Bash-Zeit deaktivieren und verwenden /usr/bin/time? Wenn nicht, wie kann ich die Ausgabe formatieren?

Qian
quelle
1
Es gibt tatsächlich eine Umgebungsvariable: TIMEFORMAT, die die Ausgabe der Zeit angibt.
Qian

Antworten:

9

Die meisten reservierten Wörter sind Befehle, die in bash integriert sind. Wenn Sie eine ausführbare Datei verwenden möchten, die denselben Namen wie ein reserviertes Wort hat, geben Sie entweder den vollständigen Pfad zur ausführbaren Datei an oder maskieren Sie den Befehl mit einem Backslash.

$ time

real    0m0.000s
user    0m0.000s
sys 0m0.000s
$ \time
Usage: time [-apvV] [-f format] [-o file] [--append] [--verbose]
       [--portability] [--format=format] [--output=file] [--version]
       [--help] command [arg...]
$ then
bash: syntax error near unexpected token `then'
$ \then
bash: then: command not found

Außerdem BASH FAQ # 32: "Wie kann ich die Ausgabe von 'Zeit' in eine Variable oder Datei umleiten?" .

Ignacio Vazquez-Abrams
quelle
Genau genommen sind reservierte Wörter nicht unbedingt Befehle, wie Ihr Beispiel sogar zeigt.
JdeBP
1

Sie können den Aufruf eines integrierten Bash-Befehls oder eines externen Befehls verwenden builtin <cmd>und command <cmd>erzwingen.

user1686
quelle