Shell 脚本输出未正确写入文件

Shell 脚本输出未正确写入文件

我尝试将程序的输出放入文本文件中。它将 echo 命令正确附加到文件,但 imagemagick“比较”命令未附加到文件。它只是 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

答案1

各种imagemagick命令输出STDERR代替STDOUT.

您可以重定向STDERRSTDOUT捕获输出:

compare -metric PSNR .... >> psnrdiff.txt 2>&1

答案2

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

相关内容