Я хочу сравнить вывод 2 команд.

Например:

$ command1 arguments1 > tempfile1
$ command2 arguments2 > tempfile2
$ diff tempfile1 tempfile2 > savefile
$ rm tempfile1 tempfile2

Есть ли умный способ сделать это? Надеюсь, в одну строку, и без необходимости временных файлов.

Итак, это будет что-то вроде (но, очевидно, не совсем так):

$ diff $(command1 arguments1) $(command2 arguments2) > savefile

Информация о моей машине:

$ uname -a
Linux host.name 3.2.54 #9 SMP Thu Feb 13 08:17:11 CST 2014 x86_64 GNU/Linux

$ which sh
/bin/sh

1 ответ1

0

В bash вы можете использовать процесс подстановки:

diff <(command1 arguments1) <(command2 arguments2) > savefile

Обратите внимание, что это не будет работать в обычном sh (или даже в bash в "режиме posix", то есть, когда вызывается под именем "sh", и это отключает некоторые функции для совместимости). Это доступно в Zsh, хотя.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .