Hallo allen miteinander,
Ich hoffe ich bin hierfür hier richtig, da ich dieses Script auf einem Android Handy nutze.
Zerfetzt bitte nicht gleich mein Script, ist mein aller erstes und tut bisher auch was es soll.
Aber bei meinem letzten unterfangen komme ich nicht mehr weiter.
Hier mein bisher funktionierendes Script.
Für eine weitere Auswertung brauche ich jetzt noch die Index Nr. des Arrays.
Nichts leichter als das... Dachte ich mir.
Etwas gesucht, schon etwas gefunden...
$i = ist der app Name.
${varr[$i]} = Die Index Nr.
Die test echo Ausgabe funktioniert hier auch.
Nun dachte ich mir...
Ändere ich die for... Zeile von for i in "${varr[@]}" in for i in ${!varr[*]} um und
ersetze meine vorherige $i in ${varr[$i]}.
Aber falsch gedacht...
Fehlermeldung.
: 100 200 300: unexpected '200'
Da es mit meinem Test Code funktioniert, würde ich nun sagen, der Fehler kommt deswegen
zustande, weil ich ${varr[$i]} in meine if Abfrage eingebaut habe.
Ich hab schon vieles probiert, Klammer mehr, Klammer weniger, bisher führte leider nichts zum Erfolg.
Könnte mir jemand noch hierfür den richtigen Denkanstoß geben.
Vielen Dank
Ich hoffe ich bin hierfür hier richtig, da ich dieses Script auf einem Android Handy nutze.
Zerfetzt bitte nicht gleich mein Script, ist mein aller erstes und tut bisher auch was es soll.
Aber bei meinem letzten unterfangen komme ich nicht mehr weiter.
Hier mein bisher funktionierendes Script.
Code:
#!/system/bin/sh
varr[100]=com.android.printspooler
varr[200]=com.android.email
varr[300]=com.android.bookmarkprovider
for i in "${varr[@]}"
do
if [[ $(cmd package list packages | grep $i | wc -l) = "1" ]] then
# APP ist vorhanden
if [[ $(pm path $i | sed 's/package://g' | grep -E ^\/system\/app\/ | wc -l) = 1 ]] || [[ $(pm path $i | sed 's/package://g' | grep -E ^\/system\/priv-app\/ | wc -l) = 1 ]] then
echo "System app"
else
if [[ $(cmd package list packages -d | grep $i | wc -l) = "1" ]] then
echo "$i deaktiviert"
else
echo "mache xyz"
fi
fi
else
echo "$i ist ist nicht vorhanden"
fi
done
exit
Für eine weitere Auswertung brauche ich jetzt noch die Index Nr. des Arrays.
Nichts leichter als das... Dachte ich mir.
Etwas gesucht, schon etwas gefunden...
Code:
for i in ${!varr[*]}
do
echo "$i"
echo "${varr[$i]}"
#test
echo $(pm path ${varr[$i]} | sed 's/package://g' | grep -E ^\/system\/app\/ | wc -l)
done
$i = ist der app Name.
${varr[$i]} = Die Index Nr.
Die test echo Ausgabe funktioniert hier auch.
Nun dachte ich mir...
Ändere ich die for... Zeile von for i in "${varr[@]}" in for i in ${!varr[*]} um und
ersetze meine vorherige $i in ${varr[$i]}.
Aber falsch gedacht...
Fehlermeldung.
: 100 200 300: unexpected '200'
Da es mit meinem Test Code funktioniert, würde ich nun sagen, der Fehler kommt deswegen
zustande, weil ich ${varr[$i]} in meine if Abfrage eingebaut habe.
Ich hab schon vieles probiert, Klammer mehr, Klammer weniger, bisher führte leider nichts zum Erfolg.
Könnte mir jemand noch hierfür den richtigen Denkanstoß geben.
Vielen Dank