0

shスクリプトを実行するJavaプログラムを書いています。その間、多くのデバイスに多くの 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 に答える