Вывод Shell Script не записывается в файл должным образом

Я попытался вывести вывод своей программы в текстовый файл. Он правильно добавляет команды эха к файлу, но команда imagemagick «compare» не добавляется к файлу. Это просто значение STOUD «значение PSNR», которое возвращается методом сравнения в терминал.

Есть ли способ добавить этот вывод команд в текстовый файл? Кроме того, если я вызываю свой скрипт только с помощью ./script.sh> test.txt, он не печатает ничего, кроме эха, для файла и сравнения результатов с терминалом.

Вот часть моего кода:

ls images/toconvert/ > lsout.txt while read LINE do echo ====================== $LINE ==================== >> psnrdiff.txt echo Jpeg2000 >> psnrdiff.txt compare -metric PSNR images/toconvert/$LINE images/converted/$LINE.jp2 images/psnrDiffs/$LINE.jp2.png >> psnrdiff.txt done < lsout.txt 

2 Solutions collect form web for “Вывод Shell Script не записывается в файл должным образом”

Различные команды imagemagick выводят в STDERR вместо STDOUT .

Вы можете перенаправить STDERR на STDOUT чтобы захватить вывод:

 compare -metric PSNR .... >> psnrdiff.txt 2>&1 
 ls images/toconvert/ > file.txt while read LINE do echo ====================== $LINE ==================== >> psnrdiff.txt echo Jpeg2000 >> psnrdiff.txt compare -metric PSNR "images/toconvert/$LINE" "images/converted/$LINE.jp2" "images/psnrDiffs/$LINE.jp2.png" >> psnrdiff.txt done < file.txt 
  • SSH дважды и запустить команду, экранируя символ?
  • Как мне получить bash, чтобы дать соответствующую ошибку для файла с окончанием строки Windows?
  • Почему мое условие всегда ложно?
  • передавать файл в удаленный каталог только в том случае, если он не существует без замены
  • Как заставить скрипт принимать несколько аргументов?
  • Awk не дает никакого результата
  • Сценарий Usermod Nologin
  • Передать последовательность сценарию bash
  • Как изменить целевой каталог для завершения табуляции?
  • Как получить дату с двухнедельной давности с использованием даты Solaris?
  • Что такое символ трубы «x | y» »в заявлении case?
  • Linux и Unix - лучшая ОС в мире.