Para o título: o bash só pode multiplicar inteiros.
Eu tenho este script que é redimensionar as imagens para um valor percentual
#!/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
Meu bash está configurado para aceitar vírgulas como separadores decimais.
Então, eu digito
rescale 0,3019
Estou tentando redimensionar as imagens para 30,19% de seus valores
o problema é que a linha
echo $newWidth $newHeight
mostra-me os valores como eles foram multiplicados por 3019. Estranhamente o primeiro eco
echo $percent
mostra-me 0,3019 (o valor correto)
o que estou perdendo?
Para o título: o bash só pode multiplicar inteiros.
Tags bash floating-point