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"'