Могу ли я написать вывод команды разницы времени в файл?

Могу ли я записать вывод команды разницы во времени в файл?

Например, я попробовал:

$ time foo.sh > bar.txt 

Но он выводит только результат foo.sh на bar.txt.

  • Время выполнения сценария Ruby отличается локально, чем с SSH
  • конвертировать в эпоху и обратно
  • Заставить время оставаться на месте
  • Как установить tz и дату без перезапуска в Debian Squeeze?
  • Не удалось перенаправить stdout / stderr в файл журнала
  • Тестирование интенсивности процессора одной команды или функции
  • Почему существует разница в длительности выполнения команды с различными методами перенаправления?
  • Время выполнения и ресурсы после процессов, которые выполнялись так долго
  • 4 Solutions collect form web for “Могу ли я написать вывод команды разницы времени в файл?”

    Во многих оболочках, включая ksh , zsh и bash , time является ключевым словом и используется для временных конвейеров.

     time foo | bar 

    Будет время как команды foo и bar ( zsh покажет вам разбивку). Он сообщает об этом на stderr оболочки.

     time foo.sh > bar.txt 

    Скажу вам время, необходимое для открытия bar.txt и запускать foo.sh

    Если вы хотите перенаправить вывод времени, вам нужно перенаправить stderr в контексте, где time запускается, например:

     { time foo.sh; } 2> bar.txt 

    Эта:

     2> bar.txt time foo.sh 

    работает также, но с ksh93 и bash , потому что он не находится в первой позиции, time не распознается как ключевое слово, поэтому вместо этого используется команда time (вы, вероятно, заметите другой формат вывода и не тратите время на конвейеры) ,

    Обратите внимание, что оба будут перенаправлять как выход времени, так и ошибки foo.sh на bar.txt . Если вам нужен только выходной сигнал, вам понадобится:

     { time foo.sh 2>&3 3>&-; } 3>&2 2> bar.txt 

    Обратите внимание, что POSIX не указывает, ведет ли time к ключевому слову или встроенному (независимо от того, идет ли он по конвейерам или одиночным командам). Поэтому, чтобы быть переносимым (в случае, если вы хотите использовать его в сценарии sh который вы хотите использовать в разных Unix-подобных системах), вы должны, вероятно, написать его:

     command time -p foo.sh 2> bar.txt 

    Обратите внимание, что вы не можете выполнять функции времени или встроенные или конвейеры или перенаправлять ошибки foo.sh отдельно, если только вы не запускаете отдельную оболочку, как в:

     command time -p sh -c 'f() { blah; }; f | cat' 

    Но это означает, что время также будет включать время запуска этого дополнительного sh .

    Не все версии времени поддерживают аргументы -o и –output.

    Вы хотите запустить команду следующим образом:

     (time script.sh) 1> /dev/null 2> /tmp/logFile 

    Это поместит вывод script.sh в / dev / null и результаты в / tmp / logFile.

    Если вы хотите, чтобы STDERR и STDOUT перешли в файл журнала, вы можете запустить его следующим образом:

     (time script.sh) &> /tmp/logFile 

    Чтобы получить вывод ls и вывод time в файле:

     (time ls) &> log 

    Чтобы получить только результат time в файле:

     (time ls) 2> log 

    /usr/bin/time в stderr , поэтому вам нужно будет перенаправить это.

     /usr/bin/time foo.sh 2>bar.txt 

    Если вы используете встроенное time bash, вам нужно написать его по-другому:

     (time ls) 2>bar.txt 

    Кроме того, time GNU поддерживает аргумент --output :

     /usr/bin/time --output bar.txt foo.sh 
    Interesting Posts

    Каков наилучший способ сохранения имени хоста Linux-сервера?

    Настройка просвещенного звукового демона

    Запуск цикла for параллельно

    Каковы накладные расходы на использование подоболочек?

    Может ли mutt показывать индекс и тело сообщений в горизонтальном разрезе?

    YAD – Завершить скрипт Bash

    Emacs: сделать часть буфера readonly

    Зло ли ссылка на кронтаб?

    Как изменить цвет всех строк на красный с символом%?

    Сжимает ли ctrl-c несколько раз быстрее запускает запущенную программу?

    Как разрешить пользователям регистрироваться для одной учетной записи signon от mit kerberos?

    синтаксическая ошибка в условном выражении

    Собирать коды выхода из параллельных фоновых процессов (подклассов)

    См. Последовательный порт в качестве устройства MIDI IN

    rsyslog: Как я могу гарантировать, что rsyslog предоставляет сообщение об ошибке / отладке всякий раз, когда сообщения отбрасываются?

    Linux и Unix - лучшая ОС в мире.