Olá! O arquivo de erro gerado em converter_imagem 2 > erro.txt é gerado mesmo que o script tenha sucesso. Como faria para gerar APENAS se realmente der erro? E como faria para gerar o arquivo de erro em um diretório específico que ainda não existe?
Consegui fazer isso por meio de gambiarra, removendo o arquivo de erro gerado, caso tenha sucesso, ou criando um novo diretório e então movendo o arquivo para este, caso dê erro. Mas acredito que existam formas mais elegantes. Segue meu código:
Obs: A lógica do meu script seria rodar ele dentro de um subdiretório de onde deverá ser feita a conversão.
#!/bin/bash
convertImage(){
cd ../
if [ ! -d converted-png ]
then
mkdir converted-png
fi
for image in *.jpg
do
local img_name=$(ls $image | awk -F. '{ print $1 }')
convert $img_name.jpg converted-png/$img_name.png
done
}
convertImage 2>../log.txt
if [ $? -eq 0 ]
then
echo "Conversion success"
rm log.txt
else
mkdir error
mv log.txt error
echo "Conversion error. Created log file in /error"
fi