2015-12-08 4 views
0

У меня проблема с командой сравнения.Как назначить вывод команды сравнения переменной

Я использую это для вывода результата на экран, но я не получаю ничего (эхо пусто), но после выполнения команды я получаю числовое значение

COMP=`compare -metric PSNR 00000003.jpg 00000004.jpg difference.png`<br> 
echo "$COMP" 


Я попытался это:

OUTPUT="$(compare -metric PSNR 00000003.jpg 00000004.jpg difference.png)" 
echo "${OUTPUT}" 

Но это не помогает

+0

Пожалуйста, попробуйте поиск в Интернете, прежде чем задавать вопрос. – hek2mgl

+0

@ hek2mgl Я попробовал это решение, но это не помогает – codeNinja7

+0

@shellter Спасибо за ваш ответ, но проблема в том, что сравнивать outupt с 'stderr', а не с' stdout', как уже сказал Mark Setchell. – codeNinja7

ответ

1

compare пишет на stderr не stdout, поэтому используйте следующее, чтобы отвлечь stderr в stdout:

comp=$(compare -metric PSNR 1.png 2.png diff.png 2>&1) 
echo $comp 
+0

Чем вы так много! И для будущего, как я могу понять, где команда пишет stderr или stdout? – codeNinja7

+0

Рад, что это сработало для вас. Один из способов протестировать - попробовать это как 'command 1> 1.txt 2> 2.txt', а затем посмотреть в файле' 1.txt' и посмотреть, что было в 'stdout' и посмотреть в' 2.txt' и посмотрите, что было в 'stderr'. –

+0

Большое спасибо за помощь! – codeNinja7

Смежные вопросы