首页 > 解决方案 > BASH将变量中的值(文件大小)与数字进行比较

问题描述

我正在尝试做一个简单的比较来确定一个变量是否 > 一个特定的数字。如果是,做一件事;如果没有,做另一个。但是这种比较是行不通的。(注意。我是 bash 脚本的相对新手)

我有一个名为 eab_photos.zip 的文件。如果压缩存档大于 100 兆,我需要将存档分成多个部分。(这部分代码工作正常。)

echo $actual_size
if [[ $actual_size > 100 ]]
then
    echo "Big"
else
    echo "small"
fi

$actual_size 是 21,但无论比较值(100 或 10)如何,我的代码都会回显“Big”

我也试过

if [ $actual_size > 100 ]

标签: bashif-statementvariables

解决方案


[[中,>运算符进行字符串比较。所以这是一个字典比较而不是数字。在[中,>操作符是一个文件重定向。尝试:

if [ "$actual_size" -gt 100 ]; then ...

推荐阅读