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

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

$ 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)"' 

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

 $ oldtime="$(echo hello)" $ echo $oldtime hello 

  • Различия между ключевым словом, зарезервированным словом и встроенным?
  • read -r vs read -r line и IFS
  • Параметры Bash и интерактивные оболочки
  • как получить файл определения переменной
  • Bash: Почему не * возвращает пустую строку в случае отсутствия соответствия
  • Что является хорошим примером сценария bash для изучения, чтобы изучить хорошие правила кодирования?
  • Как мне перебирать список из dconf в bash?
  • Bash - Как сделать каждый выбор меню в 1 строке вместо нескольких выборов в 1 строке
  • 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 - лучшая ОС в мире.