0

我正在编写一个 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

我有一个问题,一些指令未知并且脚本永远不会完成。它一直在运行,直到我按下一个键

 a=`ls $1 *.apk | wc -l` unkown

输出:

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
4

1 回答 1

6

以下陈述不正确:

$a = `expr $a - 1`

周围不应有空格=。将其更改为:

a=`expr $a - 1`

或者,您也可以将其写为:

((a--))
于 2013-02-22T13:45:23.083 回答