Bash однострочный, чтобы сохранить в файл, затем использовать контент - PullRequest
2 голосов
/ 14 июля 2020

Я пытаюсь сделать что-то вроде этого:

  1. сохранить вывод command1 в файл
  2. передать тот же вывод на command2

что-то вроде этого

   command2 $(command1 > file.txt)

, но это не сработало.

Ответы [ 2 ]

6 голосов
/ 14 июля 2020

Используйте tee. Это копирует стандартный ввод в файл, а также стандартный вывод. Затем направьте вывод второй команде.

command1 | tee file.txt | command2
1 голос
/ 14 июля 2020

Используемый вами вопрос

command2 $(command1 > file.txt)

tee каналы хороши, но если я правильно это прочитал, command2 ожидает имя файла? Если это так, возможно, вы можете использовать

command2 <( command1 )

Если вам также нужен файл, тогда tee внутри конструкции -

command2 <( command1 | tee file.txt )

Если для каких-то странных причина, по которой он абсолютно требует ИМЯ файла (не могу понять почему), тогда вы всегда можете попробовать это в крайнем случае -

command2 "$( command1 > file.txt && echo file.txt )"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...