Tentando multiplicar um float no bash não funcionando [duplicado]

3

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?

    
por SpaceDog 03.10.2014 / 22:32

1 resposta

5

Para o título: o bash só pode multiplicar inteiros.

    
por 03.10.2014 / 22:35