#1 Le 17/03/2024, à 17:02
- Astrolivier
[résolu] while read ne marche pas avec adb
salut,
je veux envoyer des sms avec adb et un fichier de numéros de téléphone (chaque ligne un numéro)
le programme
#!/usr/bin/env bash
exec 5> debug_output.txt
BASH_XTRACEFD="5"
PS4='$LINENO: '
set -x
declare message
declare file
message="coucou est-ce que tu reçois ce message ? "
file="phoneNumber.txt"
while read -r phone_number ; do
adb shell service call isms 7 i32 0 s16 "com.android.mms.service" s16 "${phone_number}" s16 "null" s16 "$message" s16 "null" s16 "null"
sleep 5
done < "$file"
debug_output.txt
8: declare message
9: declare file
11: message='coucou est-ce que tu reçois ce message ? '
12: file=phoneNumber.txt
15: read -r phone_number
17: adb shell service call isms 7 i32 0 s16 com.android.mms.service s16 06XXXXXXX s16 null s16 'coucou est-ce que tu reçois ce message ? ' s16 null s16 null
18: sleep 5
15: read -r phone_number
le message passe bien sur le premier numéro puis ça ne marche plus au deuxième
j'ai aussi testé avec "while true" et "read" dans la boucle et là la ça répète bien mais le champ du numéro de téléphone est vide.
quand je fais un "echo $phone_number" au lieu de adb là tout va bien ça m'affiche les numéros
avez vous s'il vous plaît une idée de pourquoi while read + adb ne marche pas ?
Dernière modification par Astrolivier (Le 17/03/2024, à 22:25)
S'il faut absolument faire des sacrifices pour assurer le progrès de l'humanité, ne serait-il pas indispensable de s'en tenir au principe selon lequel c'est à ceux dont on exige le sacrifice que la décision doit revenir en dernier ressort ? (howard zinn)
Hors ligne
#2 Le 17/03/2024, à 18:56
- kamaris
Re : [résolu] while read ne marche pas avec adb
Peut-être que adb mange l'entrée standard.
Est-ce que ça fonctionne mieux comme ça :
exec 3<"$file"
while read -r -u 3 phone_number ; do
adb shell service call isms 7 i32 0 s16 "com.android.mms.service" s16 "${phone_number}" s16 "null" s16 "$message" s16 "null" s16 "null"
sleep 5
done
exec 3<&-
Hors ligne
#3 Le 17/03/2024, à 21:37
- Watael
Re : [résolu] while read ne marche pas avec adb
dans le man d'adb, je vois une option -n (don't read from stdin), qui suggère comme le dit kamaris qu'adb "mange l'entrée standard".
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#4 Le 17/03/2024, à 22:24
- Astrolivier
Re : [résolu] while read ne marche pas avec adb
wahou z'êtes trop fort ! ça marche niquel,
merci
alors pour ceux que ce programme intéresserait
- ça marche avec un tel /e/os, mais pas avec un s10 free non routé (et inroutable) je sais pas vraiment pourquoi, mais ça devrait marcher avec les android >6 (faire des recherches avec la ligne adb pour plus d'info)
- dans le message, mieux vaut mettre des "\" pour chaque espace (coucou\ comment\ ça\ va) autrement ça ne passe que le premier mot (dans la ligne adb seule on peut mettre des simples quotes (') en plus des doubles pour palier à ça)
S'il faut absolument faire des sacrifices pour assurer le progrès de l'humanité, ne serait-il pas indispensable de s'en tenir au principe selon lequel c'est à ceux dont on exige le sacrifice que la décision doit revenir en dernier ressort ? (howard zinn)
Hors ligne