Как вывести команду bash в стандартный вывод и передать в другую команду одновременно? - PullRequest
0 голосов
/ 24 мая 2018

Я работаю на сервере и для отображения подробной информации о графическом процессоре использую следующие команды:

nvidia-smi
ps -up `nvidia-smi |tail -n +16 | head -n -1 | sed 's/\s\s*/ /g' | cut -d' ' -f3` 

Однако, как вы можете видеть, nvidia-smi вызывается дважды.Как я могу заставить вывод nvidia-smi перейти к выводу и передать к другой команде в то же время?

1 Ответ

0 голосов
/ 24 мая 2018

Использовать tee:

ps -up `nvidia-smi |tee /dev/stderr |tail -n +16 | head -n -1 | sed 's/\s\s*/ /g' | cut -d' ' -f3` 

Так как стандартный вывод передан по каналу, вы не можете сделать копию на него, поэтому я выбрал stderr для отображения вывода.

Если /dev/stderrнедоступно, используйте /proc/self/fd/2.

...