我通过推送一个bash的编译二进制文件来更改android的shell(因为默认情况下android shell是sh),即使语法错误仍然存在。
我调用了脚本文件,如下所示:
sh Cstates.sh
这是我的代码:
declare -A stateMap
for (( y=0; y<`ls /sys/devices/system/cpu/cpu0/cpuidle |grep ^state[0-9]| wc -l`; y++ ))
do
key=`cat /sys/devices/system/cpu/cpu0/cpuidle/state$y/name | sed 's/ //g'| sed 's/ *$//'`
stateMap[$key]="state$y"
if [[ $key != "POLL" ]]
then
possibleStates[$y]=$key
fi
done
我得到的错误是:
Cstates.sh[7]: syntax error: '((' unexpected
答案 0 :(得分:0)
问题在于您运行脚本的方式:
sh Cstates.sh
这会运行带有sh
的脚本,该脚本不支持您想要的功能。
要使用bash运行脚本,请使用:
/path/to/bash Cstates.sh
您可以通过将#!/path/to/bash
添加为第1行并运行./Cstates.sh
(在使用chmod +x file
授予权限后)来执行相同操作