0 votes

Émission de commandes de l'interpréteur de commandes adb avec des arguments

Je peux donc lancer une commande shell sur mon appareil GalaxyS5 en utilisant ceci :

$ adb shell run-as com.steenriver.littlecrane 'sh -c pwd'
/data/data/com.steenriver.littlecrane
$ adb shell run-as com.steenriver.littlecrane 'sh -c ls'
cache
files
lib

Jusqu'à présent, tout va bien.

Maintenant, si je veux fournir un argument à la commande, le shell ne le verra pas :

$ adb shell run-as com.steenriver.littlecrane 'sh -c ls files'
cache
files
lib

J'ai également essayé de démarrer un shell, puis de taper des commandes dans le terminal, mais cela ne fait que bloquer adb et ne produit rien.

$ adb shell run-as com.steenriver.littlecrane 
u0_a197@kwifi:/data/data/com.steenriver.littlecrane $ ls
<hangs>

Comment puis-je donner une commande shell adb avec des arguments ?

2voto

Gilles Pion Points 46

L'option "-c" de la commande sh requiert (et utilise) un seul argument, qui est la commande complète de l'interpréteur de commandes sous la forme d'une chaîne.

Cela devrait suffire :

adb shell run-as com.steenriver.littlecrane 'sh -c "ls files"'

Dans l'exemple original, "files" est interprété comme un argument supplémentaire de la commande "sh" (simplement supprimé lors de l'utilisation du commutateur "-c"), et non de la commande "ls".

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X