El script funciona de la siguiente forma:
user@host:~$ script directorio 800x600
Donde:
script es el archivo que contiene este codigo y que guardamos en la carpeta bin
directorio es el directorio que contiene las imágenes que vamos a redimensionar
y 800x600 es el nuevo tamaño que vamos a asignar
Nota: este script no es recursivo, por lo tanto no toma las imágenes de los subdirectorios del directorio dado
#!/bin/bash
E_BADPARAMS=99
E_BADDIRECTORY=100
if [[ -z "$1" || -z "$2" ]]
then
echo "Usage example: scriptname /home/user/Pictures -resize 800x600"
exit $E_BADPARAMS
else
dir=$1
if [[ -d "$dir" || -d ./"$dir" ]]
then
size=$2
if [[ $dir =~ .*[^/]$ ]]
then
dir=$dir/
fi
for file in "$dir"*.{jpg,JPG,png,PNG}
do
if [ -f "$file" ]
then
echo "Convirtiendo $file ..."
convert "$file" -resize $size "$file".tmp
mv "$file".tmp "$file"
if [ -t "$file".tmp ]
then
rm "$file".tmp
fi
fi
done
else
echo "Bad directory."
exit $E_BADDIRECTORY
fi
fi