You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Shell脚本中stat命令执行结果无法赋值给变量file_size问题求助

Shell脚本执行异常原因分析

核心错误原因

  • 变量赋值语法不符合Shell规范:Shell中对变量赋值时,=运算符两侧不允许存在空格。代码第6行的file_size= $(stat -c %s ./dropcache.log)在等号后多了一个空格,Shell会将这行解析为:临时设置环境变量file_size为空值,然后执行$(stat -c %s ./dropcache.log)返回的结果作为独立命令,就出现了对应异常。
  • 修复方式:直接删除等号后的空格即可,修改为:
file_size=$(stat -c %s ./dropcache.log)

其他可优化的语法问题

  • 脚本开头的shebang标识不完整,#!后需要指定对应的Shell解释器路径,建议修改为#!/bin/bash或者#!/bin/sh,否则系统可能无法正确识别脚本的执行环境。
  • if [ $file_size -gt $MAXFILESIZE ]这类整数比较语句,建议给变量加上双引号避免变量为空时的语法报错,修改为if [ "$file_size" -gt "$MAXFILESIZE" ]。
  • 语句sudo echo "1" > /proc/sys/vm/drop_caches存在权限问题:重定向操作是由当前Shell执行的,并不会继承sudo的root权限,会提示权限不足。建议修改为echo "1" | sudo tee /proc/sys/vm/drop_caches。

内容的提问来源于stack exchange,提问作者Hater Blocker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 20:18:03