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의 셸에 의해 실행되므로 두 개의 셸, 즉 명령을 입력하는 로컬 셸과 Android의 호출 셸이 관련됩니다 adb shell
. 따라서 특수 문자가 두 개의 쉘을 거쳐야 하는 경우 두 번 인용해야 합니다.
이와 같이 명령을 작성하는 것이 오해의 소지가 적습니다.
adb shell 'am broadcast -a com.test.app --es command STOP --es filename sample 1.01.49 7-09-1380(01).apk'
그 결과 Android에서 다음 셸 명령이 실행됩니다.
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"'