Java Android-cat$fullPathToFile | pm安装——用户0-S$apkSize->;Sript

Java Android-cat$fullPathToFile | pm安装——用户0-S$apkSize->;Sript,java,android,bash,sh,Java,Android,Bash,Sh,因为在新的Android版本中通过终端安装 pm install --user 0 org.apkfile.apk 如果失败,我将使用解决方法 cat $fullPathToFile | pm install --user 0 -S $apkSize (表演) 它可以工作,但我想要一个脚本从一个目录安装所有APK。 它看起来不错,测试输出echo“$file$apksize”和echo$fullpath/$file是正确的,wihle循环也可以工作 但我遇到以下故障,并且没有安装任何设备:

因为在新的Android版本中通过终端安装

pm install --user 0 org.apkfile.apk
如果失败,我将使用解决方法

cat $fullPathToFile | pm install --user 0 -S $apkSize
(表演)

它可以工作,但我想要一个脚本从一个目录安装所有APK。 它看起来不错,测试输出echo“$file$apksize”和echo$fullpath/$file是正确的,wihle循环也可以工作

但我遇到以下故障,并且没有安装任何设备:

"exception occurred while excecuting java.lang.NumberFormatException: null"
......................
...
....
...............
echo $testoutput1 #     echo "$file $apksize"
echo $testoutput2 #     echo $fullpath/$file
剧本:

#!/bin/sh
# check path
fullpath="$PWD"
# check how many apk files are there
files=$(ls -1 *apk | wc -l)

echo $fullpath

i=1;
while [ $i -le $files ]
do
    i=$(expr $i + 1)
    file=$(ls -1 *.apk | tail -n $i | head -n 1)
    # yes on debian you can use "du -b", but option b is not supported on android terminal - $(du -b $file | cut -f 1)
    apksize=$(wc -c $file | awk '{print $1}')
    cat "$fullpath/$file" | pm install --user 0 -S $apkSize
    echo "$file $apksize"
    echo $fullpath/$file
done
只是一些旁注/bin/sh不存在,应该是#/system/bin/sh您标记了这个bash和sh,但是android使用toybox运行mksh,这意味着awk不存在(除非您安装了busybox),但是
stat-c%s“$file”
可以工作(注意文件名可以有空格)只是一些旁注!/bin/sh不存在,应该是#/system/bin/sh您标记了这个bash和sh,但是android运行带有toybox的mksh,这意味着awk不存在(除非您安装了busybox),但是
stat-c%s“$file”
可以工作(注意文件名可以有空格)