Bash palabras reservadas vs comandos incorporados, y formatear la salida del comando de tiempo

8

¿Cuál es la diferencia entre bash palabras reservadas y comandos integrados?

¿Puedo desactivar el tiempo de bash y usarlo /usr/bin/time? Si no, ¿cómo puedo formatear su salida?

Qian
fuente
1
En realidad, hay una variable de entorno: TIMEFORMAT que especifica la salida del tiempo.
Qian

Respuestas:

9

Las palabras más reservadas son comandos integrados en bash; Si desea utilizar un ejecutable que tenga el mismo nombre que una palabra reservada, especifique la ruta completa al ejecutable o escape del comando con una barra diagonal inversa.

$ 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

Además, BASH FAQ # 32: "¿Cómo puedo redirigir la salida de 'tiempo' a una variable o archivo?" .

Ignacio Vazquez-Abrams
fuente
Estrictamente hablando, las palabras reservadas no son necesariamente comandos, como lo demuestra su ejemplo.
JdeBP
1

Puede usar builtin <cmd>y command <cmd>para forzar la llamada a un bash incorporado o un comando externo.

usuario1686
fuente