bash - 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 ]
解决方案
在[[
中,>
运算符进行字符串比较。所以这是一个字典比较而不是数字。在[
中,>
操作符是一个文件重定向。尝试:
if [ "$actual_size" -gt 100 ]; then ...
推荐阅读
- python - 如何在函数内将参数声明为 datetime64?
- android - 如何在 Android 上旋转 SurfaceView?
- git - 使用 Git 中给定功能的文件夹结构打包修改/新文件
- html - 试图仅捕获图像名称而不是完整的图像路径
- tensorflow - 调用 dispose 后未知的遗留张量
- c++ - C ++ 17将列表(或其他容器)转换为字符串跨平台的最快方法是什么
- python - 在一个脚本中更新列表并从另一个脚本访问更新的列表
- ios - 附加到 ARAnchor 的 SpriteKit SKLabelNode 不出现或全屏显示
- ssh - 如何使用 SSH 使 samba 服务器在 Internet 上可用
- javascript - 将 React 环境变量插入 HTML 脚本标签