Зарезервированные слова Bash против встроенных команд и форматирование вывода команды времени

8

В чем разница между зарезервированными в bash словами и встроенными командами?

Могу ли я отключить время bash и использовать /usr/bin/time? Если нет, как я могу отформатировать вывод?

Цянь
источник
1
На самом деле есть переменная окружения: TIMEFORMAT, которая определяет вывод времени.
Цянь

Ответы:

9

Большинство зарезервированных слов - это команды, встроенные в bash; если вы хотите использовать исполняемый файл с тем же именем, что и зарезервированное слово, либо укажите полный путь к исполняемому файлу, либо экранируйте команду с обратной косой чертой.

$ 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

Кроме того, BASH FAQ # 32: «Как я могу перенаправить вывод 'time' в переменную или файл?" ,

Игнасио Васкес-Абрамс
источник
Строго говоря, зарезервированные слова вовсе не обязательно являются командами, как показывает ваш пример.
JdeBP
1

Вы можете использовать builtin <cmd>и command <cmd>для принудительного вызова встроенной или внешней команды bash.

user1686
источник