当我试图在android shell上运行bash脚本时,我收到语法错误

时间:2015-03-13 18:11:39

标签: android bash

我通过推送一个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

1 个答案:

答案 0 :(得分:0)

问题在于您运行脚本的方式:

sh Cstates.sh

这会运行带有sh的脚本,该脚本不支持您想要的功能。

要使用bash运行脚本,请使用:

/path/to/bash Cstates.sh

您可以通过将#!/path/to/bash添加为第1行并运行./Cstates.sh(在使用chmod +x file授予权限后)来执行相同操作