Bash zarezerwowane słowa vs. wbudowane polecenia i formatowanie wyniku polecenia time

8

Jaka jest różnica między słowami zastrzeżonymi przez bash a wbudowanymi poleceniami?

Czy mogę wyłączyć czas bash i korzystać z niego /usr/bin/time? Jeśli nie, to jak sformatować dane wyjściowe?

Qian
źródło
1
W rzeczywistości istnieje zmienna środowiskowa: TIMEFORMAT, która określa wynik czasu.
Qian,

Odpowiedzi:

9

Najbardziej zastrzeżone słowa to polecenia wbudowane w bash; jeśli chcesz użyć pliku wykonywalnego o tej samej nazwie co słowo zastrzeżone, albo podaj pełną ścieżkę do pliku wykonywalnego, albo wyjdź z polecenia za pomocą odwrotnego ukośnika.

$ 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

Również BASH FAQ # 32: „Jak mogę przekierować wyjście„ time ”do zmiennej lub pliku?” .

Ignacio Vazquez-Abrams
źródło
Ściśle mówiąc, słowa zastrzeżone wcale nie muszą być poleceniami, jak pokazuje twój przykład.
JdeBP
1

Możesz użyć builtin <cmd>i, command <cmd>aby wymusić wywołanie wbudowanej komendy bash lub polecenia zewnętrznego.

użytkownik1686
źródło