试图在 bash 中乘以浮点数不起作用

Duc*_*uck 3 bash floating-point

我有这个脚本可以将图像重新缩放为百分比值

#!/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
Run Code Online (Sandbox Code Playgroud)

我的 bash 被配置为接受逗号作为小数点分隔符。

所以,我输入的乳清

rescale 0,3019
Run Code Online (Sandbox Code Playgroud)

我正在尝试将图像重新缩放到其值的 30.19%

问题是这条线

  echo $newWidth $newHeight
Run Code Online (Sandbox Code Playgroud)

向我展示了乘以 3019 的值。奇怪的是,第一个回声

echo $percent
Run Code Online (Sandbox Code Playgroud)

显示给我 0,3019(正确的值)

我错过了什么?

Cyr*_*rus 5

对于您的标题:bash 只能乘以整数。

  • 或者短一点 `bc<<<0.3333*17.2` (2认同)