
Tengo este script que sirve para cambiar la escala de las imágenes a un valor porcentual.
#!/bin/bash
percent=$1
echo $percent
for img in `find *.png`;
do
echo Processing file $img
width=$( mdls $img | grep kMDItemPixelWidth | tail -n1 | cut -d= -f2 )
height=$( mdls $img | grep kMDItemPixelHeight | tail -n1 | cut -d= -f2 )
newWidth=$((width*percent))
newHeight=$((height*percent))
echo $newWidth $newHeight
sips -z $newWidth $newHeight $img
done
Mi bash está configurado para aceptar comas como separadores decimales.
Entonces, ¿por qué escribo?
rescale 0,3019
Estoy intentando cambiar la escala de las imágenes al 30,19% de sus valores.
el problema es que la linea
echo $newWidth $newHeight
me muestra los valores tal como fueron multiplicados por 3019. Curiosamente el primer eco
echo $percent
me muestra 0,3019 (el valor correcto)
¿Qué me estoy perdiendo?
Respuesta1
Para su titular: bash solo puede multiplicar números enteros.