如何在if中比较文件大小百分比

时间:2018-09-11 02:22:43

标签: bash arithmetic-expressions

我正在尝试在bash shell中执行此操作。基本上想按百分比比较两个文件的大小。如果file1相差90%,则file2执行以下操作:

这是我到目前为止所拥有的:

newsize=$(wc -c <"$newfile")
oldsize=$(wc -c <"$oldfile")

if [[ $(($oldsize * 0.9)) -ge $newsize ]]; then
  echo 'This file is 90% or greater'
else
  echo 'This file is not large enough'
fi

我在令牌“ 0.9”上收到无效的算术运算符错误 任何帮助或指针都将适用

1 个答案:

答案 0 :(得分:1)

尝试使用整数数学(例如9/10)而不是浮点数。

更新的脚本

newsize=525
oldsize=584

if [[ $(($oldsize * 9/10)) -ge $newsize ]]; then
  echo 'This file is 90% or greater'
else
  echo 'This file is not large enough'
fi

示例输出

This file is 90% or greater