командная подстанция для многострочного вывода команды?

Как я могу выполнить следующую замену команды?

$ time real 0m0.000s user 0m0.000s sys 0m0.000s $ oldtime="$(time)" bash: command substitution: line 23: syntax error near unexpected token `)' bash: command substitution: line 23: `time)"' 

Я думаю, это не работает, потому что вывод команды имеет несколько строк, потому что работает один вывод:

  • Показывать количество заданий только в том случае, если оно больше 0
  • Когда я могу использовать временную IFS для разделения поля?
  • Stat работает в Bash 4.3, но не в Bash 3.2?
  • Что является хорошим примером сценария bash для изучения, чтобы изучить хорошие правила кодирования?
  • Получить свободное пространство в текущем каталоге в Bash
  • bash + Есть ли что-то вроде log4j для скрипта bash?
  •  $ oldtime="$(echo hello)" $ echo $oldtime hello 

  • Использование оператора bash «&» с разделителем «;»?
  • Как экспортировать переменные из файла?
  • Список всех файлов, содержащих определенную строку.
  • список всех файлов c в подкаталогах и их родительский каталог
  • Почему `bash <command>` не запускается?
  • bash 4.3 "множественные точки" команды терпят неудачу молча
  • 2 Solutions collect form web for “командная подстанция для многострочного вывода команды?”

    Я не уверен, что вы пытаетесь поймать, потому что time не записывается в stdout:

     $ time > tmpfile real 0m0.000s user 0m0.000s sys 0m0.000s 

    и вы на самом деле не «время».

     oldtime="$(time echo)" 

    не выдает ошибку, но все равно печатает время на stdout.

    Вы, вероятно, захотите сделать что-то вроде

     $ oldtime="$( { time ; } 2>&1 )" 

    При запуске в подобном подобном случае вы можете использовать times вместо этого. Это в основном одно и то же – за исключением того, что вместо того, чтобы сообщать о времени обработки для конвейера, переданного ему в качестве аргументов, вместо этого он сообщает о временах обработки, используемых его родительской оболочкой (read: командная подоболочка) и всех ее дочерних элементов с момента ее родительская оболочка была вызвана – и она должна записываться в stdout.

    Таким образом, вы можете:

     pipeline_out=$(some | arbitrary | pipeline; times) 

    … захватить все это.

    Или просто посмотреть резюме использования для текущего сеанса оболочки:

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