Попытка умножить число с плавающей точкой в ​​bash не работает

Попытка умножить число с плавающей точкой в ​​bash не работает

У меня есть скрипт, который изменяет масштаб изображений до процентного значения.

#!/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

Мой bash настроен на прием запятых в качестве десятичных разделителей.

Итак, когда я печатаю

rescale 0,3019

Я пытаюсь изменить масштаб изображений до 30,19% от их значений.

проблема в том, что линия

  echo $newWidth $newHeight

показывает мне значения, умноженные на 3019. Как ни странно, первое эхо

echo $percent

показывает мне 0,3019 (правильное значение)

что я упускаю?

решение1

Возвращаясь к заголовку: bash может умножать только целые числа.

Связанный контент