Saída do Script da Shell não gravada no arquivo corretamente

2

Eu tentei colocar a saída do meu programa em um arquivo de texto. Ele anexa os comandos de eco ao arquivo corretamente, mas o comando imagemagick "compare" não é anexado ao arquivo. Apenas STOUD é o "valor PSNR", que é retornado pelo método compare no terminal.

Existe uma maneira de acrescentar essa saída de comandos ao arquivo de texto também? Além disso, se eu chamar meu script apenas com "./script.sh > test.txt", ele não imprimirá nada além dos ecos para arquivar e comparar os resultados no terminal.

Aqui está uma parte do meu código:

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
    
por Stefan Sprenger 26.04.2014 / 13:21

2 respostas

3

Vários imagemagick de saída de comando para STDERR em vez de STDOUT .

Você pode redirecionar STDERR para STDOUT para capturar a saída:

compare -metric PSNR .... >> psnrdiff.txt 2>&1
    
por 26.04.2014 / 13:48
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
    
por 26.04.2014 / 13:43