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는 정수 곱셈만 수행할 수 있습니다.

관련 정보