Проблема с массивом скриптов Android sh

#android #bash #shell #sh

#Android #bash #оболочка #sh

Вопрос:

Хорошо, я не уверен, что я здесь делаю не так?

Я продолжаю получать [#]: not found сообщение об ошибке для каждой из этих строк. То, что я пытаюсь сделать, это создать массив свойств и значений, чтобы я мог перебирать их и либо обновлять, либо записывать в свой build.prop файл.

 #!/system/bin/sh

# PROP and PROP VALUE VARIABLE ARRAYS
PROPARR=;
PROPVALARR=;
#Properties to change Array
PROPARR[] = net.tcp.buffersize.defau<
PROPARR[] = net.tcp.buffersize.wifi;
PROPARR[] = net.tcp.buffersize.umts;
PROPARR[] = net.tcp.buffersize.gprs;
PROPARR[] = net.tcp.buffersize.edge;
PROPARR[] = wifi.supplicant_scan_interval;
PROPARR[] = ro.HOME_APP_ADJ;
PROPARR[] = dalvik.vm.dexopt-flags;
PROPARR[] = dalvik.vm.execution-mode;
PROPARR[] = dalvik.vm.heapstartsize;
PROPARR[] = dalvik.vm.heapgrowthlimit;
PROPARR[] = dalvik.vm.heapsize;
PROPARR[] = dalvik.vm.heaptargetutilization;
PROPARR[] = dalvik.vm.heapminfree;
PROPARR[] = dalvik.vm.heapmaxfree;
PROPARR[] = debug.sf.hw;
#Property Values
PROPVALARR[] = 4096,87380,256960,4096,16384,256960;
PROPVALARR[] = 4096,87380,256960,4096,16384,256960;
PROPVALARR[] = 4096,87380,256960,4096,16384,256960;
PROPVALARR[] = 4096,87380,256960,4096,16384,256960;
PROPVALARR[] = 4096,87380,256960,4096,16384,256960;
PROPVALARR[] = 300;
PROPVALARR[] = 1;
PROPVALARR[] = m=y,v=n,o=v,u=n;
PROPVALARR[] = init:jit;
PROPVALARR[] = 16m;
PROPVALARR[] = 128m;
PROPVALARR[] = 512m;
PROPVALARR[] = 0.75;
PROPVALARR[] = 12m;
PROPVALARR[] = 16m;
PROPVALARR[] = 1;
  

Я не могу использовать bash из-за того, что это используется на устройстве Android

Обновить

 # this variable is just a place holder for the future line number of the prop values
lineNum=
# Loop through the properties I want to change
for i in $PROPARR; do

prop=$PROPARR[$i];
arg=$PROPVALARR[$i];
if grep -Fq $prop $FILE ; then
        lineNum=`sed -n "/${prop}/=" $FILE`;
        sed -i "${lineNum} c${prop}=${arg}" $FILE;
else
        echo $prop=$arg >> $FILE;
fi;

done;
  

Ответ №1:

Я неправильно устанавливал переменные массива.

Вот правильный способ сделать это:

 #Properties to change Array
PROPARR = ('net.tcp.buffersize.default' 'net.tcp.buffersize.wifi' 'net.tcp.buffersize.umts' 'net.tcp.buffersize.gprs' 'net.tcp.buffersize.edge' 'wifi.supplicant_scan_interval' 'ro.HOME_APP_ADJ' 'dalvik.vm.dexopt-flags' 'dalvik.vm.execution-mode' 'dalvik.vm.heapstartsize' 'dalvik.vm.heapgrowthlimit' 'dalvik.vm.heapsize' 'dalvik.vm.heaptargetutilization' 'dalvik.vm.heapminfree' 'dalvik.vm.heapmaxfree' 'debug.sf.hw');
#Property Values
PROPVALARR = ('4096,87380,256960,4096,16384,256960' '4096,87380,256960,4096,16384,256960' '4096,87380,256960,4096,16384,256960' '4096,87380,256960,4096,16384,256960' '4096,87380,256960,4096,16384,256960' '300' '1' 'm=y,v=n,o=v,u=n' 'init:jit' '16m' '128m' '512m' '0.75' '12m' '16m' '1');