我写一个java程序来运行一个sh脚本.同时在许多设备中安装许多apk.但我的脚本有问题,我不知道为什么.脚本的代码是
#!/bin/bash
checkParameter() {
echo "$1"
if [ -d $1 ]; then
echo "$1 est bien un repertoire"
else
echo "Vérifier si vous avez bien séléctionné un reperoire"
fi
}
# pour chercher les devices connectés
devices(){
adb devices > devices.txt
}
install(){
echo "Debut de l'installation"
a=`ls $1 *.apk | wc -l`
for SERIAL in $(adb devices | tail -n +2 | cut -sf 1);
do
echo "le nombre des Applications à installer $a"
for APKLIST in $(ls $1 *.apk);
do
if [ $a -eq 0 ]
then
break;
fi
echo "Installatroning $APKLIST on $SERIAL"
#adb -s $SERIAL install $1/$APKLIST &
#adb bugreport > bug.txt
done
$a = `expr $a - 1`
done
echo "La fin de l'Installation "
}
checkParameter
devices
install
echo 'exit normally'
exit 0
Run Code Online (Sandbox Code Playgroud)
我有一个问题,一些指令未知,脚本永远不会完成.它一直在运行,直到我按下一个键
a=`ls $1 *.apk | wc -l` unkown
Run Code Online (Sandbox Code Playgroud)
输出:
est bien un repertoire
Debut de l'installation
./codes/adb.sh: ligne 24: =3 : commande introuvable
le nombre des Applications à installer
ls: impossible d'accéder à *.apk: Aucun fichier ou dossier de ce type
expr: erreur de syntaxe
./codes/adb.sh: ligne 41: = : commande introuvable
La fin de l'Installation
exit normally
Run Code Online (Sandbox Code Playgroud)
以下陈述不正确:
$a = `expr $a - 1`
Run Code Online (Sandbox Code Playgroud)
周围不应有空格=.将其更改为:
a=`expr $a - 1`
Run Code Online (Sandbox Code Playgroud)
或者,您也可以将其写为:
((a--))
Run Code Online (Sandbox Code Playgroud)