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

Android设备CPU调频Shell脚本执行出现[xxx: not found]错误

Android CPU频率设置脚本错误排查与修复

错误原因分析

你遇到的[1248000: not found错误,核心是Shell语法格式问题,同时脚本还有两处细节错误:

  • 条件判断语法错误:if [$bigfreq -ne $littlefreq]; then中,[是Shell内置命令,必须和后续变量之间保留空格;同理]前面也需要加空格。否则Shell会把[$bigfreq当作完整命令查找,导致找不到命令报错。
  • 变量名拼写错误:cpufalf是cpuhalf的笔误,会导致cpuhalfint变量值异常。
  • grep命令格式错误:grep -c ^processor/proc/cpuinfo缺少空格,正确写法是grep -c ^processor /proc/cpuinfo,否则会把路径当作匹配模式,无法正确统计CPU核心数。

修正后的脚本

#!/system/bin/sh
# 修正grep命令的空格问题,正确统计CPU核心数
cpucores=$(grep -c ^processor /proc/cpuinfo)
cpusint=$((cpucores-1))
littlefreq=$(cat /sys/devices/system/cpu/cpu$cpusint/cpufreq/scaling_max_freq)
bigfreq=$(cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq)
cpuhalf=$((cpucores/2))
# 修正变量名拼写错误
cpuhalfint=$((cpuhalf-1))
# 修正if条件的空格问题,符合Shell语法规范
if [ $bigfreq -ne $littlefreq ]; then
        for i in $(seq 0 $cpuhalfint); do
            chmod 0644 /sys/devices/system/cpu/cpu$i/cpufreq/scaling_governor
            echo "performance" > /sys/devices/system/cpu/cpu$i/cpufreq/scaling_governor
            chmod 0644 /sys/devices/system/cpu/cpu$i/cpufreq/scaling_min_freq
            echo $bigfreq > /sys/devices/system/cpu/cpu$i/cpufreq/scaling_min_freq
        done
        # 修正循环起始值,避免重复处理同一个核心
        for x in $(seq $((cpuhalfint+1)) $cpusint); do
            chmod 0644 /sys/devices/system/cpu/cpu$x/cpufreq/scaling_governor
            echo "performance" > /sys/devices/system/cpu/cpu$x/cpufreq/scaling_governor
            chmod 0644 /sys/devices/system/cpu/cpu$x/cpufreq/scaling_min_freq
            echo $littlefreq > /sys/devices/system/cpu/cpu$x/cpufreq/scaling_min_freq
        done
else
        for i in $(seq 0 $cpusint); do
            chmod 0644 /sys/devices/system/cpu/cpu$i/cpufreq/scaling_governor
            echo "performance" > /sys/devices/system/cpu/cpu$i/cpufreq/scaling_governor
            chmod 0644 /sys/devices/system/cpu/cpu$i/cpufreq/scaling_min_freq
            echo $bigfreq > /sys/devices/system/cpu/cpu$i/cpufreq/scaling_min_freq
        done
fi

额外优化说明

  • 把反引号`替换为$(),这是更现代、可读性更好的命令替换写法。
  • 修正第二个循环的起始值,避免重复处理同一核心,优化执行逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 01:37:12