
У меня есть скрипт, который изменяет масштаб изображений до процентного значения.
#!/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 может умножать только целые числа.