Из двух псевдонимов C-оболочки ниже, только сначала печатает отчет Команды Времени по затраченному времени. Как я могу получить псевдоним с конвейером для печати отчета о времени?
alias make1 'time make'
alias make2 'time make |& tee make.log'
Из двух псевдонимов C-оболочки ниже, только сначала печатает отчет Команды Времени по затраченному времени. Как я могу получить псевдоним с конвейером для печати отчета о времени?
alias make1 'time make'
alias make2 'time make |& tee make.log'
Команда time, встроенная в оболочку C (csh или tcsh), не работает с конвейерами. Чтобы обойти это ограничение, используйте автономное время команду вместо, который обычно находятся в / USR / BIN / время (если это не так , попробуйте whereis time
, чтобы найти его).
Измените time
в командной строке на /usr/bin/time
(или /usr/bin/time -p
) или на любой другой путь к программе времени, и она должна работать.
Почему это не сработало:
Оболочка C (как и некоторые другие оболочки) имеет встроенную команду времени (см встроенную справочную страницу), которая используется в предпочтении к программе времени не встроенная_команда_оболочки (автономный):
% which time
time: shell built-in command.
%
и страница руководства для csh (на самом деле tcsh в моей системе) гласит:
time [command]
Executes command (which must be a simple command, not an alias,
a pipeline, a command list or a parenthesized command list) ...
Команда /usr /bin /time не имеет этого ограничения, равно как и встроенные команды времени большинства других оболочек, например, bash или zsh.
Вы хотели использовать там трубу? То, что вы по существу делаете, это отправка результата второй команды time
в tee
. Вот почему ваш результат не распечатывается - скорее всего, он записывается в make.log.