执行adb shell命令时出错

执行adb shell命令时出错
adb shell am broadcast -a com.test.app --es command "STOP" --es filename "sample 1.01.49 7-09-1380(01).apk"

我正在尝试使用上述adb命令广播意图,其中样本1.01.49 7-09-1380(01).apk是我想要广播的文件,但出现以下错误:

/system/bin/sh: syntax error: '(' unexpected

有人可以帮我解决这个问题吗?

答案1

该命令由 Android 上的 shell 执行,因此涉及两个 shell:您输入命令的本地 shell 和调用的 Android 上的 shell adb shell。因此,如果特殊字符需要通过两个 shell,则需要将其引用两次。

将命令写成这样会减少误导性

adb shell 'am broadcast -a com.test.app --es command STOP --es filename sample 1.01.49 7-09-1380(01).apk'

这会导致在 Android 上执行以下 shell 命令:

am broadcast -a com.test.app --es command STOP --es filename sample 1.01.49 7-09-1380(01).apk

但你实际上想要执行类似

am broadcast -a com.test.app --es command STOP --es filename "sample 1.01.49 7-09-1380(01).apk"

因此,您需要本地命令类似于

adb shell 'am broadcast -a com.test.app --es command STOP --es filename "sample 1.01.49 7-09-1380(01).apk"'

相关内容