8

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?

  • 1
    There is actually an environment variable: TIMEFORMAT that specifies the output of time. – TheoYou Jun 23 '11 at 14:18
9

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?".

  • Strictly speaking, reserved words aren't necessarily commands at all, as your example even demonstrates. – JdeBP Jun 23 '11 at 16:28
1

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

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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