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
  • 1
    There is actually an environment variable: TIMEFORMAT that specifies the output of time.
    – Qian
    Jun 23, 2011 at 14:18

2 Answers 2

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

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

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

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .