What's the difference between bash reserved words and built-in commands?

Can I disable bash's time, and use /usr/bin/time? If not, how can I format its output?

link|improve this question
There is actually an environment variable: TIMEFORMAT that specifies the output of time. – Theo Jun 23 '11 at 14:18
feedback

2 Answers

up vote 6 down vote accepted

Most reserved words are commands that are built into bash; if you want to use an executable that has the same name as a reserved word then either specify the full path to the executable, or escape the command with a 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

Also, BASH FAQ #32: "How can I redirect the output of 'time' to a variable or file?".

link|improve this answer
Thanks, the backslash is really tricky. – Theo Jun 23 '11 at 14:02
Strictly speaking, reserved words aren't necessarily commands at all, as your example even demonstrates. – JdeBP Jun 23 '11 at 16:28
feedback

You can use builtin <cmd> and command <cmd> to force calling a bash built-in or an external command.

link|improve this answer
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.